Selamat datang, Kawan Belajar. Setelah berhasil menginstall Virtualmin di server, langkah selanjutnya yang tidak boleh dilewatkan adalah memasang SSL. Tanpa SSL, browser akan menampilkan peringatan "Not Secure" di setiap halaman website yang kamu kelola, dan ini cukup untuk membuat pengunjung langsung kabur sebelum sempat membaca konten.
Kabar baiknya, Virtualmin sudah terintegrasi langsung dengan Let's Encrypt: layanan sertifikat SSL gratis dan terpercaya yang digunakan oleh jutaan website di seluruh dunia. Tidak perlu beli sertifikat, tidak perlu konfigurasi manual yang rumit, dan pembaruannya bisa berjalan otomatis.
Di panduan ini ada dua proses yang berbeda dan bisa kamu pilih sesuai kebutuhan:
- Cara 1: SSL untuk website atau domain yang dikelola Virtualmin (paling sering dibutuhkan)
- Cara 2: SSL untuk panel admin Virtualmin itu sendiri, agar akses ke port 10000 juga aman
Keduanya independen. Kamu bisa melakukan salah satu atau keduanya.
Prasyarat
Sebelum memulai, pastikan kondisi berikut sudah terpenuhi:
| Kebutuhan | Detail |
|---|---|
| Virtualmin | Sudah terinstall dan berjalan normal |
| Domain | Sudah diarahkan ke IP server (rekaman A sudah benar) |
| DNS propagasi | Rekaman DNS sudah aktif dan bisa diakses dari internet |
| Port 80 | Terbuka di firewall (dibutuhkan untuk proses verifikasi Let's Encrypt) |
| Port 443 | Terbuka di firewall (untuk HTTPS setelah sertifikat terpasang) |
Let's Encrypt memverifikasi kepemilikan domain dengan cara mengakses server kamu melalui internet. Jika rekaman DNS belum propagasi atau belum diarahkan ke IP server yang benar, proses request sertifikat akan selalu gagal. Cek propagasi DNS di dnschecker.org sebelum melanjutkan.
Let's Encrypt menggunakan metode verifikasi HTTP-01: server kamu akan diakses melalui port 80 untuk membuktikan kepemilikan domain. Jika port 80 diblokir firewall, request sertifikat akan gagal meskipun domain sudah benar. Pastikan port 80 sudah dibuka di UFW maupun di firewall cloud (Security Group) jika ada. Panduan membuka port bisa kamu baca di artikel Panduan Lengkap UFW di Linux.
Cara 1: SSL untuk Website (Virtual Server) di Virtualmin
Ini adalah cara yang paling sering digunakan. Jika kamu sudah membuat virtual server di Virtualmin untuk domain tertentu dan ingin memasang SSL pada website tersebut, ikuti langkah-langkah berikut.
Langkah 1: Pilih Virtual Server di Panel Virtualmin
Login ke panel Virtualmin melalui https://IP-SERVER:10000, lalu di menu sebelah kiri cari dan klik nama domain yang ingin dipasangi SSL.
Setelah memilih domain, menu di panel kiri akan menampilkan opsi-opsi khusus untuk virtual server tersebut.
Langkah 2: Buka Pengaturan SSL Certificate
Dari dalam virtual server yang sudah dipilih, klik Manage Virtual Server di menu kiri, lalu pilih submenu Setup SSL Certificate.
Kamu akan melihat halaman pengaturan sertifikat SSL dengan beberapa tab di bagian atas.
Langkah 3: Request Sertifikat Let's Encrypt
Klik tab SSL Providers di bagian atas halaman SSL Certificate.
Di halaman ini, beberapa field sudah terisi otomatis berdasarkan konfigurasi virtual server:
| Field | Keterangan |
|---|---|
| Request certificate for | Berisi domain atau subdomain yang mau diterbitkan SSL-nya |
| Automatically renew certificate | Biarkan default (Yes). Agar sertifikat Let's Encrypt ini diperbarui otomatis |
Setelah memastikan field sudah benar, klik tombol Request Certificate.
Di field Request certificate for, kamu bisa menambahkan subdomain lain yang ingin dicakup oleh satu sertifikat, misalnya
mail.namadomain.com atau panel.namadomain.com. Pastikan masing-masing subdomain juga sudah memiliki rekaman DNS yang mengarah ke IP server.
Langkah 4: Verifikasi Sertifikat Aktif
Jika proses berhasil, Virtualmin akan menampilkan pesan konfirmasi berisi detail sertifikat yang baru diterbitkan: nama domain, tanggal kedaluwarsa, dan nama penerbit (Let's Encrypt).
Untuk memastikan SSL sudah aktif, buka browser dan akses domain kamu dengan prefix https://:
https://namadomain.com
Kamu seharusnya melihat ikon gembok di address bar browser, bukan peringatan "Not Secure." Klik ikon gembok tersebut untuk melihat detail sertifikat dan memastikan penerbitnya adalah Let's Encrypt.
Setelah SSL terpasang, sebaiknya aktifkan redirect otomatis dari HTTP ke HTTPS agar semua pengunjung selalu diarahkan ke versi aman. Di Virtualmin, masuk ke Server Configuration → Website Options dan aktifkan opsi Redirect all requests to SSL site?
Cara 2: SSL untuk Panel Admin Virtualmin
Secara default, panel admin Virtualmin di port 10000 menggunakan sertifikat self-signed yang menyebabkan peringatan "Connection is not private" setiap kali kamu login. Kamu bisa menggantinya dengan sertifikat Let's Encrypt yang valid agar akses ke panel lebih aman dan bersih dari peringatan.
Hostname yang kamu gunakan untuk mengakses panel (misalnya
server.namadomain.com) harus sudah memiliki rekaman DNS yang mengarah ke IP server dan bisa diakses dari internet. Hostname inilah yang akan dibuatkan sertifikatnya. Panduan konfigurasi rekaman DNS tersedia di artikel Manajemen DNS Record di Portal Client Area CloudKilat.
Langkah 1: Buka Webmin Configuration
Di panel Virtualmin, klik menu Webmin di bagian atas navigasi kiri (bukan Virtualmin, tapi Webmin), lalu pilih Webmin Configuration.
Langkah 2: Masuk ke SSL Encryption
Di halaman Webmin Configuration, cari dan klik ikon atau menu SSL Encryption.
Langkah 3: Request Let's Encrypt untuk Panel
Di halaman SSL Encryption, klik tab SSL Provider.
Isi field yang tersedia:
| Field | Isi |
|---|---|
| Hostnames for certificate | Hostname yang digunakan untuk mengakses panel, contoh: server.namadomain.com |
| Website root directory for validation | Biarkan default |
Klik Request Certificate dan tunggu proses selesai.
Langkah 4: Restart Webmin dan Verifikasi
Setelah sertifikat berhasil diterbitkan, Webmin perlu di-restart agar sertifikat baru aktif digunakan:
sudo systemctl restart webmin
Lalu buka kembali panel di browser:
https://server.namadomain.com:10000
Kali ini browser tidak akan menampilkan peringatan lagi. Ikon gembok muncul di address bar dan sertifikatnya diterbitkan oleh Let's Encrypt.
Jika hostname panel kamu (misalnya
server.namadomain.com) sudah memiliki virtual server di Virtualmin dan sertifikat Let's Encrypt sudah terpasang di Cara 1, kamu bisa langsung menyalinnya ke panel tanpa perlu request ulang. Di halaman SSL Encryption → Current Certificate, klik Copy to Webmin untuk menggunakan sertifikat yang sama.
Troubleshooting
Request sertifikat gagal dengan error "domain ownership could not be verified"
Ini adalah error paling umum dan hampir selalu disebabkan oleh salah satu dari dua hal berikut.
Pertama, rekaman DNS domain belum mengarah ke IP server yang benar atau belum selesai propagasi. Cek dengan perintah berikut (ganti namadomain.com dengan domain kamu):
dig namadomain.com A +short
Output harus menampilkan IP server kamu. Jika hasilnya IP lain atau kosong, perbaiki rekaman DNS terlebih dahulu sebelum mencoba lagi.
Kedua, port 80 terblokir di firewall. Cek dengan perintah ini:
sudo ss -tlnp | grep :80
Jika port 80 tidak muncul dalam output, aktifkan terlebih dahulu di UFW:
sudo ufw allow 80/tcp
sudo ufw reload
Muncul error "too many certificates already issued"
Let's Encrypt membatasi penerbitan sertifikat sebanyak 5 sertifikat per domain per minggu. Jika kamu sudah beberapa kali mencoba request karena gagal, kamu mungkin sudah mencapai batas ini. Solusinya hanya satu: tunggu hingga periode batas reset (biasanya dalam hitungan hari) sebelum mencoba lagi.
Jika kamu sedang bereksperimen atau debugging, gunakan Let's Encrypt staging environment untuk menghindari rate limit. Di Virtualmin, kamu bisa mengaktifkan opsi Use Let's Encrypt staging server? di halaman request sertifikat. Sertifikat staging tidak valid di browser, tapi berguna untuk memastikan proses verifikasi berjalan sebelum request ke server produksi.
Sertifikat terpasang tapi website masih tampil HTTP
Setelah SSL terpasang, redirect HTTP ke HTTPS tidak aktif secara otomatis. Aktifkan melalui:
Virtualmin → [pilih virtual server] → Server Configuration → Website Options → Redirect all requests to SSL site?
Pilih Yes dan simpan perubahan.
Perpanjangan otomatis gagal dan sertifikat kedaluwarsa
Jika sertifikat tiba-tiba kedaluwarsa padahal perpanjangan otomatis sudah aktif, kemungkinan penyebabnya adalah konfigurasi DNS atau firewall yang berubah setelah sertifikat pertama kali diterbitkan. Cek log perpanjangan di:
cat /var/log/letsencrypt/letsencrypt.log
Perbaiki masalah yang ditemukan di log, lalu jalankan perpanjangan manual:
sudo virtualmin generate-letsencrypt-cert --domain namadomain.com --renew
Kesimpulan
Sampai di sini, website dan panel admin Virtualmin kamu sudah terlindungi dengan sertifikat SSL dari Let's Encrypt. Pengunjung tidak akan lagi disambut peringatan "Not Secure", dan koneksi ke server sudah terenkripsi sepenuhnya.
Yang perlu diingat: pastikan DNS selalu mengarah ke IP server yang benar dan port 80 selalu terbuka, karena keduanya dibutuhkan setiap kali sertifikat diperbarui secara otomatis. Jika salah satu berubah, perpanjangan otomatis bisa gagal dan sertifikat akan kedaluwarsa.
Selamat, Kawan Belajar! Website kamu kini sudah HTTPS dan siap diakses dengan aman. Jika ada kendala selama proses pemasangan, tim CloudKilat siap membantu melalui fitur live chat atau tiket support.