HTTPS dan Sertifikat SSL: Panduan Lengkap untuk Pemilik Website
HTTPS adalah versi aman dari HTTP. Dengan HTTPS, data yang dikirim antara browser dan server dienkripsi sehingga tidak bisa dibaca atau diubah oleh pihak di tengah jalan, misalnya di jaringan Wi-Fi publik. Saat ini HTTPS bukan lagi pilihan: browser menandai halaman HTTP sebagai "Tidak aman", banyak fitur browser modern hanya berjalan di HTTPS, dan Google menyebut HTTPS sebagai salah satu sinyal peringkat.
Bagaimana HTTPS bekerja
HTTPS memakai protokol TLS (penerus SSL; istilah "SSL" masih populer meski versi SSL lama sudah tidak dipakai). Saat browser terhubung, server menunjukkan sertifikat yang membuktikan bahwa server itu memang pemilik domain tersebut. Sertifikat ditandatangani oleh lembaga terpercaya yang disebut Certificate Authority (CA). Setelah sertifikat diverifikasi, browser dan server menyepakati kunci enkripsi untuk sisa komunikasi.
Jenis sertifikat
- DV (Domain Validation) – hanya membuktikan kepemilikan domain. Diterbitkan otomatis dalam hitungan menit. Cocok untuk hampir semua website, termasuk toko online.
- OV (Organization Validation) dan EV (Extended Validation) – memverifikasi identitas organisasi. Browser modern tidak lagi menampilkan perbedaan visual yang mencolok untuk EV, sehingga manfaatnya bagi pengunjung terbatas.
- Wildcard – berlaku untuk semua subdomain satu tingkat, misalnya
*.contoh.com.
Dari sisi enkripsi, sertifikat DV gratis memberikan tingkat keamanan koneksi yang sama dengan sertifikat berbayar.
Sertifikat gratis dengan Let's Encrypt
Let's Encrypt adalah CA nirlaba yang menerbitkan sertifikat DV gratis. Sertifikatnya berlaku 90 hari dan dirancang untuk diperpanjang otomatis.
- Di shared hosting: sebagian besar panel (cPanel, Plesk, DirectAdmin) menyediakan fitur AutoSSL atau Let's Encrypt satu klik.
- Di VPS: gunakan Certbot. Contoh untuk Nginx di Ubuntu:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d contoh.com -d www.contoh.com
Certbot memasang sertifikat, mengubah konfigurasi Nginx, dan menyiapkan perpanjangan otomatis. Periksa dengan sudo certbot renew --dry-run.
Mode SSL di Cloudflare
Jika memakai Cloudflare, ada dua koneksi: dari pengunjung ke Cloudflare, dan dari Cloudflare ke server Anda. Mode SSL menentukan bagaimana koneksi kedua diamankan:
- Off – tanpa HTTPS. Jangan dipakai.
- Flexible – pengunjung ke Cloudflare terenkripsi, tetapi Cloudflare ke server memakai HTTP biasa. Gembok tetap muncul di browser, padahal sebagian perjalanan data tidak terenkripsi. Mode ini juga sering menyebabkan pengalihan berulang (redirect loop) jika server memaksa HTTPS.
- Full – terenkripsi sampai server, tetapi sertifikat server tidak divalidasi.
- Full (strict) – terenkripsi sampai server dan sertifikat server harus valid (dari CA terpercaya atau Cloudflare Origin Certificate). Ini mode yang disarankan.
Pasang sertifikat yang valid di server terlebih dahulu, baru ubah mode ke Full (strict).
Mengalihkan HTTP ke HTTPS
Setelah sertifikat terpasang, pastikan semua akses HTTP dialihkan ke HTTPS dengan pengalihan permanen (301). Contoh di Nginx:
server {
listen 80;
server_name contoh.com www.contoh.com;
return 301 https://contoh.com$request_uri;
}
Usahakan pengalihan langsung ke alamat final dalam satu langkah. Rantai seperti http://www → https://www → https:// menambah waktu muat. Setelah semuanya stabil, pertimbangkan memasang header HSTS. Lihat Header Keamanan.
Mengatasi mixed content
Mixed content terjadi ketika halaman HTTPS memuat file lewat HTTP, misalnya gambar http://contoh.com/logo.png. Browser akan memblokir atau meningkatkan sebagian file tersebut, dan gembok bisa hilang. Cara mengatasinya:
- Buka DevTools (F12) > Console untuk melihat peringatan mixed content.
- Ganti semua URL
http://di konten, tema, dan pengaturan menjadihttps://atau gunakan path relatif. - Di WordPress, pastikan WordPress Address dan Site Address di Pengaturan > Umum memakai
https://. Untuk mengganti URL lama di database, gunakan alat search-replace yang aman (misalnya WP-CLIwp search-replace) setelah membuat backup. - Sebagai pengaman tambahan, header CSP
upgrade-insecure-requestsmeminta browser memuat sumber HTTP melalui HTTPS.
Pengaturan TLS yang baik
- Aktifkan TLS 1.2 dan TLS 1.3; nonaktifkan versi lama (SSL 3, TLS 1.0, TLS 1.1).
- Aktifkan HTTP/2 agar koneksi HTTPS lebih efisien.
- Gunakan rantai sertifikat lengkap (
fullchain.pem), bukan hanya sertifikat domain, agar semua perangkat bisa memverifikasinya.
Memantau masa berlaku
Sertifikat kedaluwarsa membuat pengunjung melihat peringatan keamanan besar dan banyak yang langsung pergi. Pastikan perpanjangan otomatis berjalan, dan pasang pengingat atau pemantauan. Jika memakai Let's Encrypt, CA biasanya juga mengirim email peringatan sebelum kedaluwarsa.
HTTPS dan hasil tes webmaster.my.id
Kategori Praktik Terbaik di Lighthouse memeriksa apakah halaman memakai HTTPS dan tidak memuat mixed content. Bagian keamanan juga memeriksa header seperti HSTS. Setelah memasang HTTPS dengan benar, uji ulang di webmaster.my.id untuk memastikan semuanya lolos.
Contoh migrasi dari HTTP ke HTTPS
Berikut urutan aman untuk memindahkan blog yang masih memakai HTTP:
- Buat cadangan file dan database.
- Pasang sertifikat, misalnya dengan Certbot:
certbot --nginx -d contoh.com -d www.contoh.com, atau lewat fitur SSL gratis di panel hosting. - Buka situs melalui
https://dan periksa apakah ada peringatan mixed content di Console browser. - Ganti semua tautan internal dan alamat gambar dari
http://kehttps://. Di WordPress, ubah alamat situs di Pengaturan Umum, lalu ganti alamat lama di database dengan alat pencarian dan penggantian yang aman untuk data serialisasi. - Aktifkan pengalihan 301 dari HTTP ke HTTPS untuk semua halaman.
- Perbarui sitemap, tambahkan properti HTTPS di Google Search Console, dan kirim ulang sitemap.
- Setelah semuanya stabil beberapa minggu, pertimbangkan mengaktifkan HSTS.
Checklist HTTPS
- Sertifikat mencakup domain utama dan
www, serta subdomain yang dipakai. - Semua versi alamat dialihkan ke satu alamat utama HTTPS dengan satu kali pengalihan.
- Tidak ada mixed content di halaman mana pun.
- Perpanjangan otomatis berjalan dan sudah diuji, misalnya dengan
certbot renew --dry-run. - TLS 1.2 dan 1.3 aktif, sedangkan versi lama dimatikan.
- Mode SSL Cloudflare memakai Full (strict) jika situs memakai Cloudflare.
- Tag canonical, sitemap, dan tautan internal memakai alamat HTTPS.
Kesalahan umum
- Memakai mode Flexible di Cloudflare. Pengunjung melihat gembok, tetapi koneksi dari Cloudflare ke server tidak terenkripsi. Mode ini juga sering memicu pengalihan berulang jika server ikut mengalihkan ke HTTPS.
- Pengalihan berantai. Misalnya
http://contoh.comkehttps://contoh.comlalu kehttps://www.contoh.com. Sebaiknya langsung ke alamat akhir. - Sertifikat kedaluwarsa karena perpanjangan gagal. Sertifikat Let's Encrypt berlaku 90 hari, jadi perpanjangan otomatis harus dipantau.
- Lupa memperbarui alamat di layanan lain. Profil media sosial, Google Business Profile, dan tautan iklan sebaiknya memakai alamat HTTPS.
Pertanyaan yang sering diajukan
Apakah sertifikat gratis sama amannya dengan yang berbayar?
Untuk enkripsi, sertifikat DV gratis dari Let's Encrypt memberikan tingkat enkripsi yang sama dengan sertifikat DV berbayar. Perbedaan sertifikat berbayar biasanya ada pada jenis validasi, garansi, dan dukungan.
Apakah HTTPS memperlambat website?
Ada sedikit proses tambahan saat koneksi pertama, tetapi dengan TLS 1.3 dan HTTP/2 dampaknya sangat kecil. HTTPS justru diperlukan untuk HTTP/2 dan HTTP/3 di browser.
Apakah pindah ke HTTPS merusak SEO?
Tidak, jika dilakukan dengan pengalihan 301 yang benar dan sitemap diperbarui. Google menganggap HTTPS sebagai salah satu sinyal peringkat ringan.
Apa arti peringatan "Not Secure" di browser?
Browser menampilkannya jika halaman dibuka melalui HTTP biasa atau ada masalah sertifikat. Pengunjung cenderung ragu mengisi formulir di halaman seperti ini.
Bagaimana cara mengecek tanggal kedaluwarsa sertifikat?
Klik ikon gembok di browser untuk melihat detail sertifikat, atau gunakan perintah openssl s_client -connect contoh.com:443 -servername contoh.com lalu baca bagian masa berlakunya.
Apakah setiap subdomain perlu sertifikat sendiri?
Tidak harus. Satu sertifikat bisa mencakup beberapa nama domain, atau Anda bisa memakai sertifikat wildcard yang berlaku untuk semua subdomain satu tingkat.
Apa yang harus dilakukan jika sertifikat sudah kedaluwarsa?
Perpanjang segera, misalnya dengan certbot renew atau melalui panel hosting, lalu muat ulang server web. Setelah itu periksa kenapa perpanjangan otomatis gagal agar tidak terulang.
Ringkasan
- Pasang sertifikat (gratis dengan Let's Encrypt sudah cukup).
- Alihkan semua HTTP ke HTTPS dengan satu pengalihan 301.
- Gunakan mode Full (strict) jika memakai Cloudflare.
- Bersihkan mixed content.
- Pastikan perpanjangan otomatis berjalan, lalu pasang HSTS.