Masalah sertifikat SSL adalah salah satu masalah teknis paling mengganggu yang bisa dialami sebuah situs. Sertifikat yang kedaluwarsa akan mengunci setiap pengunjung dengan peringatan browser. Sertifikat yang salah dikonfigurasi menyebabkan kegagalan diam-diam. Sertifikat yang dikeluarkan untuk domain yang salah akan merusak subdomain. Dan tidak seperti kebanyakan masalah, masalah sertifikat terjadi sesuai jadwal — masa berlakunya habis — jadi masalah ini sepenuhnya dapat dicegah jika Anda tahu di mana mencarinya.
Berikut cara memeriksa sertifikat SSL, arti setiap kolom, dan apa yang harus dilakukan jika terjadi kesalahan.
Pemeriksaan Cepat: Browser Anda
Untuk situs mana pun yang Anda kunjungi, pemeriksaan SSL tercepat ada di browser Anda.
Krom / Tepi: Klik ikon gembok (atau teks "Koneksi aman") di sebelah URL → Sertifikat valid → Detail sertifikat
Firefox: Klik ikon kunci → Koneksi Aman → Informasi Lebih Lanjut → Lihat Sertifikat
Ini menunjukkan kepada Anda:
- Kepada siapa sertifikat tersebut diterbitkan (domain)
- Siapa yang menerbitkannya (Otoritas Sertifikat)
- Berlaku mulai / Berlaku hingga tanggal
- Nomor seri dan sidik jari sertifikat
Untuk pemeriksaan kewarasan cepat — apakah sertifikat ini valid, dan apakah sertifikat tersebut milik domain yang benar — Anda hanya memerlukan UI browser.
Pemeriksaan Menyeluruh: Alat Online
Untuk analisis lengkap sertifikat termasuk cipher suite, validitas rantai, konfigurasi HSTS, dan kerentanan yang diketahui, gunakan Alat Pemeriksa SSL. Masukkan domain apa pun dan analisis lengkap akan dijalankan tanpa perlu menginstal apa pun.
Hal ini sangat berguna untuk:
- Sertifikat di server yang tidak dapat Anda akses secara langsung
- Memverifikasi sertifikat baru setelah instalasi
- Memeriksa sertifikat sebelum masa berlakunya habis
- Mengaudit kekuatan cipher suite (TLS 1.0/1.1 harus dinonaktifkan)
Baris Perintah: openssl
Untuk pengembang dan sysadmin, openssl memberi Anda pemeriksaan sertifikat langsung dari terminal.
Periksa sertifikat server jarak jauh:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -text
Ini mengembalikan rincian lengkap sertifikat. Bidang utama yang harus dilihat:
Tanggal kedaluwarsa:
openssl s_client -connect example.com:443 -servername example.name </dev/null 2>/dev/null | openssl x509 -noout -dates
Keluaran:
notBefore=Jan 1 00:00:00 2025 GMT
notAfter=Jan 1 00:00:00 2026 GMT
Periksa file sertifikat lokal:
openssl x509 -in certificate.crt -noout -text
openssl x509 -in certificate.crt -noout -dates
openssl x509 -in certificate.crt -noout -subject -issuer
Verifikasi rantai sertifikat:
openssl verify -CAfile chain.pem certificate.crt
Periksa hari hingga habis masa berlakunya (dapat ditulis dalam skrip):
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} date -d {} +%s | xargs -I{} expr \( {} - $(date +%s) \) / 86400
Mengembalikan jumlah hari yang tersisa. Berguna dalam memonitor skrip.
Arti Setiap Bidang Sertifikat
Subjek / Nama Umum (CN): Domain tempat sertifikat diterbitkan. Harus cocok dengan domain yang Anda kunjungi, atau browser akan menampilkan peringatan. Untuk sertifikat wildcard, ini adalah *.example.com.
Nama Alternatif Subjek (SAN): Daftar semua domain yang dicakup oleh sertifikat. Sertifikat modern menggunakan SAN, bukan hanya CN. Sertifikat mungkin mencakup example.com, www.example.com, dan api.example.com — semua tercantum di sini. Inilah yang sebenarnya diperiksa oleh browser.
Penerbit: Otoritas Sertifikat (CA) yang menandatangani sertifikat. Yang umum: Let's Encrypt, DigiCert, Sectigo, Google Trust Services, Amazon. Sertifikat milik penerbit ditandatangani oleh root CA yang dipercaya oleh browser.
Masa berlaku: Bukan Tanggal Sebelum dan Bukan Setelahnya. Sertifikat kedaluwarsa — Mari Enkripsi sertifikat kedaluwarsa setiap 90 hari (dengan perpanjangan otomatis). Sertifikat komersial biasanya bertahan 1 tahun.
Algoritma dan ukuran kunci: RSA 2048-bit adalah minimumnya; 4096-bit atau EC P-256 lebih kuat. Sertifikat EC (kurva elips) menawarkan keamanan setara dengan ukuran kunci yang lebih kecil, sehingga sedikit meningkatkan kinerja.
Versi TLS: Server Anda harus mendukung TLS 1.2 dan TLS 1.3. TLS 1.0 dan 1.1 tidak digunakan lagi dan harus dinonaktifkan — browser modern menolak koneksi pada TLS ini.
Transparansi sertifikat: Sertifikat modern dicatat dalam log Transparansi Sertifikat publik. Ini wajib untuk sertifikat yang dipercaya oleh Chrome. Ini memungkinkan siapa pun mengaudit sertifikat apa yang telah diterbitkan untuk suatu domain — berguna untuk mendeteksi sertifikat yang tidak sah.
Masalah Umum SSL dan Cara Memperbaikinya
Sertifikat kedaluwarsa Masalah paling umum. Browser Anda menampilkan "Sambungan Anda tidak pribadi" dengan kesalahan NET::ERR_CERT_DATE_INVALID.
Perbaikan: Perpanjang sertifikat. Jika Anda menggunakan Let's Encrypt dengan Certbot, jalankan certbot renew. Jika menggunakan sertifikat berbayar, beli perpanjangan melalui CA Anda dan instal. Siapkan pemantauan untuk mengingatkan Anda 30 hari sebelum kedaluwarsa sehingga hal ini tidak pernah terjadi dalam produksi.
Ketidakcocokan domain sertifikat Sertifikat dikeluarkan untuk example.com tetapi Anda berkunjung www.example.com (atau sebaliknya), dan sertifikat tidak menyertakan yang lain sebagai SAN.
Perbaikan: Dapatkan sertifikat yang mencakup keduanya (sebagian besar sertifikat seharusnya), atau alihkan salah satu sertifikat ke sertifikat lainnya secara konsisten.
Rantai sertifikat tidak lengkap Server Anda menyajikan sertifikat Anda tetapi bukan sertifikat perantara yang menghubungkannya ke root CA tepercaya. Browser yang telah melakukan cache perantara dapat terhubung; orang lain melihat kesalahan.
Perbaikan: Konfigurasikan server web Anda untuk mengirim rantai lengkap. Dengan Nginx, gunakan ssl_certificate menunjuk ke file yang menyertakan sertifikat Anda dan bundel perantara. Dengan Apache, gunakan SSLCertificateChainFile.
Periksa masalah ini secara spesifik:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | grep -A 1 "Certificate chain"
Anda akan melihat setidaknya 2 sertifikat dalam rantai (sertifikat Anda + perantara).
Sertifikat yang ditandatangani sendiri Browser tidak mempercayai sertifikat yang tidak ditandatangani oleh CA yang diakui. Sertifikat yang ditandatangani sendiri baik untuk pengembangan internal tetapi akan memicu peringatan untuk situs publik mana pun.
Perbaikan: Dapatkan sertifikat dari CA tepercaya. Let's Encrypt gratis dan otomatis untuk domain publik.
Rangkaian sandi yang lemah Server menegosiasikan koneksi TLS menggunakan algoritma yang ketinggalan jaman atau lemah (RC4, DES, cipher tingkat ekspor, TLS 1.0/1.1).
Hubungi:
nmap --script ssl-enum-ciphers -p 443 example.com
Perbaikan: Perbarui konfigurasi SSL server web Anda ke cipher suite modern saja. milik Mozilla Pembuat Konfigurasi SSL menghasilkan konfigurasi siap tempel untuk Nginx, Apache, dan lainnya.
Pemantauan Sertifikat
Memeriksa sertifikat secara manual sebelum masa berlakunya habis tidak akan berskala. Opsi untuk pemantauan otomatis:
Perpanjangan otomatis Certbot: Jika Anda menggunakan Let's Encrypt, Certbot menyiapkan tugas cron atau pengatur waktu sistem yang memperbarui sertifikat secara otomatis ketika sertifikatnya tersisa kurang dari 30 hari. Verifikasi itu berfungsi: certbot renew --dry-run
Layanan pemantauan waktu aktif: Kebanyakan monitor uptime (UptimeRobot, Freshping, Better Uptime) menyertakan peringatan kedaluwarsa sertifikat. Tetapkan ambang peringatan 30 hari.
Skrip khusus di cron: Skrip bash sederhana menggunakan openssl Perintah di atas dapat memeriksa masa berlaku dan mengirim peringatan email.
Perintah
#!/bin/bash
DOMAIN="example.com"
DAYS_LEFT=$(echo | openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} python3 -c "from datetime import datetime; print((datetime.strptime('{}', '%b %d %H:%M:%S %Y %Z') - datetime.utcnow()).days)")
if [ "$DAYS_LEFT" -lt 30 ]; then
echo "Certificate for $DOMAIN expires in $DAYS_LEFT days" | mail -s "SSL Warning" admin@example.com
fi
Intinya
Masalah sertifikat dapat diprediksi dan dicegah. Masalah utama — kedaluwarsa, ketidakcocokan domain, rantai tidak lengkap — semuanya muncul dengan jelas di pemeriksaan SSL.
Jalankan pemeriksaan pada domain mana pun dengan Alat Pemeriksa SSL. Untuk server produksi, siapkan pemantauan kedaluwarsa dengan setidaknya jendela peringatan 30 hari. Dan jika Anda masih menggunakan TLS 1.0 atau 1.1, nonaktifkan semuanya — server modern mana pun sebaiknya hanya menggunakan TLS 1.2+.