Server Solusi – Website yang sebelumnya bisa dibuka melalui HTTPS dapat tiba-tiba menampilkan peringatan sertifikat kedaluwarsa. Browser mungkin menampilkan pesan seperti NET::ERR_CERT_DATE_INVALID, Certificate has expired, atau peringatan bahwa koneksi tidak aman.
Masalah ini perlu segera diperiksa, terutama jika website digunakan untuk login pelanggan, transaksi, atau layanan bisnis. Pengunjung bisa kehilangan kepercayaan, sementara aplikasi yang melakukan validasi sertifikat secara ketat mungkin menolak koneksi sepenuhnya.
Saya tidak memiliki log atau konfigurasi server tertentu untuk dijadikan bukti pengalaman perbaikan langsung. Karena itu, panduan ini menggunakan prosedur troubleshooting yang dapat kamu ikuti untuk menemukan penyebab dan memverifikasi hasil perbaikannya.
Memahami Penyebab SSL Certificate Expired
Sertifikat SSL/TLS memiliki masa berlaku. Ketika tanggal kedaluwarsanya terlewati, browser yang memvalidasi sertifikat tersebut dapat menolak koneksi HTTPS.
Namun, pesan sertifikat tidak valid tidak selalu berarti sertifikat utama benar-benar kedaluwarsa. Ada beberapa kondisi yang perlu dibedakan.
| Gejala | penyebab | Pemeriksaan |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Sertifikat kedaluwarsa, belum berlaku, atau jam perangkat keliru | Tanggal sertifikat dan waktu sistem |
Certificate has expired | Sertifikat yang disajikan server sudah melewati masa berlaku | Periksa notAfter |
| Sertifikat masih berlaku, tetapi browser memberi peringatan | Nama domain tidak cocok atau rantai sertifikat bermasalah | Periksa SAN dan certificate chain |
SSL valid di domain utama, tetapi gagal di www | Domain menggunakan konfigurasi atau sertifikat berbeda | Uji kedua hostname |
| SSL kembali kedaluwarsa setelah diperbarui | Perpanjangan otomatis gagal atau server masih menyajikan sertifikat lama | Periksa renewal log dan endpoint HTTPS |
| SSL valid di origin tetapi tidak valid dari browser | Proxy, CDN, load balancer, atau server lain menyajikan sertifikat berbeda | Periksa setiap endpoint |
Catatan penting: memperpanjang sertifikat hanya menyelesaikan masalah masa berlaku. Jika masalah sebenarnya adalah nama domain yang tidak cocok, rantai sertifikat yang tidak lengkap, atau konfigurasi TLS pada CDN, kamu perlu memperbaiki bagian tersebut secara terpisah.
Cara Memeriksa Sertifikat SSL yang Kedaluwarsa
Sebelum memperbarui sertifikat, pastikan sertifikat yang bermasalah memang sertifikat yang disajikan kepada pengunjung.
1: Periksa tanggal kedaluwarsa dari browser
Buka website menggunakan HTTPS, lalu pilih informasi koneksi atau sertifikat pada browser. Nama menu dapat berbeda menurut browser yang digunakan.
Perhatikan informasi berikut:
Valid from: awal masa berlaku sertifikat.
Valid to: akhir masa berlaku sertifikat.
Subject Alternative Name (SAN): daftar domain yang tercakup dalam sertifikat.
Issuer: pihak yang menerbitkan sertifikat.
Pastikan domain yang bermasalah tercantum dalam sertifikat dan tanggalnya sesuai. Jika tanggal sertifikat masih valid tetapi browser tetap memberi peringatan, jangan langsung melakukan renewal.
2: Periksa sertifikat melalui terminal
Dari komputer atau server yang memiliki OpenSSL, jalankan:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -datesGanti example.com dengan domain kamu.
Perintah ini mengambil sertifikat yang disajikan endpoint HTTPS, kemudian menampilkan informasi subjek, penerbit, tanggal mulai berlaku, dan tanggal kedaluwarsa.
Contoh format informasi yang akan diperiksa:
notBefore=...notAfter=...Nilai notAfter menunjukkan batas akhir masa berlaku sertifikat yang diperiksa. Perintah ini tidak membuktikan bahwa sertifikat dipercaya browser atau cocok dengan semua domain; untuk itu diperlukan pemeriksaan tambahan.
Jika sertifikat tidak dapat diambil, periksa konektivitas port 443, konfigurasi TLS, dan apakah endpoint tersebut dapat dijangkau.
Dokumentasi OpenSSL menjelaskan opsi koneksi TLS dan pemeriksaan sertifikat melalui s_client.
3: Periksa sertifikat untuk setiap domain
Jika website menggunakan domain utama dan subdomain www, jalankan pemeriksaan untuk keduanya.
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -datesopenssl s_client -connect www.example.com:443 -servername www.example.com </dev/null 2>/dev/null | openssl x509 -noout -datesOpsi -servername mengirimkan SNI (Server Name Indication), sehingga server dapat menyajikan sertifikat yang sesuai dengan hostname yang diminta.
Jika tanggal atau identitas sertifikat berbeda, periksa konfigurasi virtual host, DNS, dan layanan proxy yang menangani masing-masing domain.
Cara Mengatasi SSL Certificate Expired di VPS Linux
Bagian ini menggunakan asumsi VPS menjalankan Linux dengan systemd dan sertifikat dikelola oleh Certbot. Jika SSL dikelola panel hosting, CDN, atau penyedia sertifikat lain, gunakan metode pengelolaan yang sesuai.
1: Periksa sertifikat yang dikelola Certbot
Jalankan:
sudo certbot certificatesPerintah ini menampilkan sertifikat yang dikenal Certbot, termasuk nama sertifikat, domain, lokasi file, dan tanggal kedaluwarsa.
Bandingkan informasi tersebut dengan sertifikat yang diperiksa dari browser. Keduanya bisa berbeda jika web server menggunakan file sertifikat lain atau koneksi melewati proxy.
Jika Certbot tidak tersedia, jangan langsung menginstalnya sebelum memastikan cara SSL dikelola pada server tersebut.
2: Periksa alasan renewal gagal
Jika sertifikat seharusnya diperpanjang otomatis tetapi ternyata kedaluwarsa, periksa log Certbot:
sudo tail -n 100 /var/log/letsencrypt/letsencrypt.logLokasi log dapat berbeda jika Certbot dipasang melalui metode atau lingkungan yang berbeda.
Cari pesan yang berkaitan dengan validasi domain, DNS, koneksi port 80, izin akses, atau kegagalan autentikasi ACME. Pesan tersebut membantu menentukan apakah masalah berada pada validasi domain, konfigurasi renewal, atau proses lainnya.
Periksa juga apakah domain masih mengarah ke server yang benar. Jika IP publik berubah atau DNS mengarah ke server lama, proses penerbitan ulang dapat gagal.
3: Uji proses perpanjangan sebelum menjalankan renewal sebenarnya
Untuk instalasi Certbot yang mendukung pengujian renewal, jalankan:
sudo certbot renew --dry-runPerintah ini menguji proses renewal menggunakan lingkungan pengujian tanpa menggantikan sertifikat produksi dengan sertifikat hasil pengujian.
Jika pengujian gagal, baca pesan error dan perbaiki penyebabnya terlebih dahulu. Jika berhasil, kamu memiliki indikasi bahwa jalur renewal dapat bekerja, tetapi tetap perlu memastikan proses renewal produksi dan penerapan sertifikat berjalan dengan benar.
Dokumentasi Certbot menjelaskan perilaku renew, pengujian --dry-run, dan pengaturan renewal otomatis.
4: Perbarui sertifikat yang memang dikelola Certbot
Jika sertifikat sudah kedaluwarsa dan konfigurasi renewal telah diperiksa, jalankan:
sudo certbot renewPerintah tersebut mencoba memperbarui sertifikat yang sudah memenuhi kondisi renewal menurut Certbot. Jika sertifikat belum masuk periode renewal, Certbot mungkin tidak melakukan penerbitan ulang.
Jika sertifikat tertentu perlu ditangani secara khusus, periksa nama sertifikat dengan sudo certbot certificates terlebih dahulu, kemudian gunakan opsi --cert-name yang sesuai. Hindari memakai --force-renewal tanpa alasan karena penerbitan berulang dapat terkena batas penerbitan dari certificate authority.
Jika proses berhasil, lanjutkan dengan memeriksa apakah web server benar-benar menyajikan sertifikat terbaru. Keberhasilan renewal belum tentu berarti konfigurasi endpoint sudah menggunakan file yang diperbarui.
5: Terapkan sertifikat ke web server
Pada konfigurasi Certbot yang menggunakan plugin Nginx atau Apache, pemasangan sertifikat dapat dikelola secara otomatis. Namun, pada konfigurasi manual, reverse proxy, atau arsitektur khusus, kamu mungkin perlu memuat ulang layanan setelah memastikan file sertifikat yang benar digunakan.
Untuk Nginx:
sudo nginx -tJika validasi berhasil:
sudo systemctl reload nginxUntuk Apache pada Ubuntu/Debian:
sudo apache2ctl configtestJika validasi berhasil:
sudo systemctl reload apache2Reload umumnya menerapkan konfigurasi tanpa menghentikan layanan sepenuhnya, tetapi dampaknya tetap bergantung pada konfigurasi dan kondisi service. Jangan melakukan reload jika validasi gagal.
Jika SSL dihentikan pada CDN atau load balancer, pembaruan di origin server saja mungkin tidak mengubah sertifikat yang dilihat pengunjung. Perbarui sertifikat pada komponen yang benar-benar menangani koneksi HTTPS publik.
Jika Menggunakan cPanel atau Panel Hosting
Tidak semua sertifikat SSL dikelola langsung melalui terminal. Pada shared hosting atau VPS yang menggunakan panel, pembaruan sertifikat mungkin ditangani oleh AutoSSL, Let’s Encrypt integration, atau layanan SSL milik provider.
Periksa status SSL dari panel
Masuk ke panel hosting.
Buka menu SSL/TLS atau pengelolaan SSL, sesuai panel yang digunakan.
Cari domain yang menampilkan status kedaluwarsa.
Periksa apakah sertifikat mencakup domain utama dan subdomain
www.Jalankan pembaruan atau proses AutoSSL jika tersedia, kemudian periksa hasilnya.
Jika proses gagal, cari pesan error yang diberikan panel. Masalahnya mungkin berasal dari validasi domain, DNS yang tidak sesuai, atau kegagalan akses ke endpoint validasi.
Jangan mengunggah sertifikat baru tanpa memastikan pasangan private key yang digunakan sesuai. Sertifikat yang tidak cocok dengan private key dapat menyebabkan konfigurasi HTTPS gagal.
Jika SSL menggunakan CDN atau reverse proxy
Jika website menggunakan CDN seperti Cloudflare, terdapat kemungkinan dua koneksi TLS yang berbeda: dari browser ke CDN dan dari CDN ke origin server.
Periksa sertifikat pada kedua sisi. Sertifikat yang valid di origin tidak otomatis menjamin sertifikat pada endpoint publik juga valid, begitu pula sebaliknya.
Pastikan mode enkripsi dan sertifikat origin sesuai dengan arsitektur yang digunakan. Hindari menurunkan keamanan koneksi hanya untuk menghilangkan peringatan SSL.
Jika Sertifikat Tetap Error Setelah Diperbarui
Sertifikat yang sudah diperbarui seharusnya memiliki tanggal berlaku yang sesuai. Namun, browser masih bisa menerima sertifikat lama atau menolak sertifikat baru karena konfigurasi lain belum benar.
Gunakan pemeriksaan berikut untuk mempersempit penyebabnya.
Periksa jam sistem
Tanggal perangkat yang keliru dapat membuat sertifikat yang sebenarnya valid dianggap belum berlaku atau sudah kedaluwarsa.
Pada Linux, jalankan:
timedatectl statusPeriksa tanggal, waktu, dan status sinkronisasi jam. Jika waktu server salah, perbaiki mekanisme sinkronisasi waktu sesuai distribusi dan kebijakan server.
Periksa sertifikat yang benar-benar disajikan
Jalankan kembali pemeriksaan OpenSSL setelah renewal dan reload layanan:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates -fingerprint -sha256Bandingkan tanggal dan fingerprint sertifikat yang disajikan dengan sertifikat yang seharusnya digunakan. Fingerprint membantu membedakan sertifikat yang berbeda meskipun domainnya sama.
Jika hasilnya masih menunjukkan sertifikat lama, periksa:
Apakah konfigurasi web server menunjuk ke file sertifikat yang benar.
Apakah reload berhasil.
Apakah DNS mengarah ke beberapa server dengan konfigurasi SSL berbeda.
Apakah CDN atau load balancer masih menggunakan sertifikat lama.
Periksa rantai sertifikat dan nama domain
Jika tanggal sertifikat sudah benar tetapi browser masih menolak koneksi, periksa nama domain pada SAN, rantai sertifikat, dan status kepercayaan penerbit.
Sertifikat yang tanggalnya valid belum tentu valid untuk hostname yang diminta. Jangan menganggap masalah selesai hanya karena nilai notAfter sudah berada di masa depan.
Cara Memastikan SSL Sudah Normal
Setelah pembaruan, lakukan verifikasi dari sisi server dan klien.
Checklist verifikasi SSL
0/5
Tanggal mulai dan kedaluwarsa sesuai dengan sertifikat yang baru.
Sertifikat mencakup hostname yang diuji, termasuk www jika digunakan.
Pemeriksaan HTTPS menunjukkan sertifikat yang benar-benar disajikan ke pengunjung.
Konfigurasi valid dan reload berhasil jika diperlukan.
Website dapat dibuka tanpa peringatan sertifikat untuk hostname yang diperiksa.
Checklist ini digunakan untuk pengujian mandiri, bukan bukti bahwa suatu website sudah diperbaiki.
Kamu juga dapat menguji respons HTTPS:
curl -Iv https://example.com/Perintah ini menampilkan informasi koneksi TLS dan respons HTTP. Jika koneksi berhasil, perhatikan status HTTP serta apakah hostname dan sertifikat yang digunakan sesuai. Status HTTP seperti 403 atau 500 tidak otomatis menunjukkan masalah SSL karena dapat berasal dari aplikasi atau konfigurasi server.
Cara Mencegah SSL Certificate Expired Terulang
Masalah sertifikat kedaluwarsa sering kali baru diketahui ketika pengunjung mulai menerima peringatan browser. Agar tidak terlambat menanganinya, buat pemeriksaan berkala yang sesuai dengan sistem pengelolaan SSL.
Aktifkan renewal otomatis. Pastikan Certbot timer, cron job, AutoSSL, atau mekanisme lain benar-benar berjalan sesuai instalasi.
Uji renewal secara berkala. Gunakan
certbot renew --dry-runjika sesuai dengan lingkungan Certbot yang digunakan.Pantau tanggal kedaluwarsa. Buat notifikasi sebelum masa berlaku habis, bukan setelah website bermasalah.
Pantau log renewal. Kegagalan validasi domain sebaiknya diketahui lebih awal.
Jaga konfigurasi DNS. Perubahan DNS, proxy, atau routing dapat memengaruhi validasi sertifikat.
Verifikasi setelah perubahan. Periksa sertifikat dari endpoint publik setelah renewal atau perubahan konfigurasi.
Catat lokasi pengelolaan sertifikat. Ketahui apakah SSL dikelola oleh VPS, panel hosting, CDN, atau load balancer agar pembaruan dilakukan pada komponen yang tepat.
Pada server produksi, jangan hanya mengandalkan notifikasi dari certificate authority. Pantau juga hasil renewal dan sertifikat yang benar-benar disajikan kepada pengunjung karena keduanya dapat berbeda.
FAQ Seputar SSL Certificate Expired
1. Apa penyebab SSL certificate expired?
Penyebab langsungnya adalah sertifikat telah melewati tanggal kedaluwarsa. Hal ini dapat terjadi karena renewal otomatis gagal, proses pembaruan tidak dikonfigurasi, atau sertifikat baru tidak diterapkan pada endpoint yang digunakan pengunjung.
2. Bagaimana cara mengatasi SSL certificate expired di VPS?
Periksa sertifikat dengan OpenSSL, lalu periksa konfigurasi renewal. Jika menggunakan Certbot, jalankan sudo certbot certificates, tinjau log, dan uji sudo certbot renew --dry-run. Setelah masalah renewal diperbaiki, lakukan pembaruan dan pastikan web server menyajikan sertifikat yang benar.
3. Apakah SSL gratis dari Let’s Encrypt bisa diperpanjang otomatis?
Bisa, jika mekanisme renewal telah dikonfigurasi dan proses validasi berhasil. Namun, otomatisasi tidak menjamin semua pembaruan berhasil. Periksa timer atau cron job, log renewal, dan akses validasi domain secara berkala.
4. Mengapa SSL masih error padahal sudah diperpanjang?
Kemungkinan endpoint masih menyajikan sertifikat lama, domain tidak tercakup dalam sertifikat baru, rantai sertifikat bermasalah, atau konfigurasi CDN dan origin tidak sesuai. Periksa sertifikat dari koneksi publik, bukan hanya file sertifikat di server.
5. Apakah website harus dimatikan saat memperbarui SSL?
Tidak selalu. Pada banyak konfigurasi Nginx atau Apache, sertifikat dapat diperbarui dan layanan dimuat ulang tanpa menghentikan website sepenuhnya. Namun, metode penerbitan, validasi domain, dan arsitektur hosting menentukan apakah ada dampak layanan.
Penutup
Cara mengatasi error SSL certificate expired dimulai dengan memastikan sertifikat yang disajikan memang kedaluwarsa, kemudian memperbaiki proses renewal dan menerapkan sertifikat yang benar pada endpoint HTTPS.
Jika menggunakan VPS dengan Certbot, periksa daftar sertifikat, log renewal, dan konfigurasi web server. Jika menggunakan panel hosting atau CDN, lakukan pemeriksaan pada komponen yang mengelola TLS untuk pengunjung.
Apabila error tetap muncul setelah pembaruan, periksa tanggal sertifikat, nama domain, rantai sertifikat, DNS, dan kemungkinan adanya endpoint lain yang masih menyajikan sertifikat lama. Dengan langkah tersebut, kamu dapat menentukan tindakan berdasarkan hasil pemeriksaan, bukan sekadar mencoba memperpanjang SSL berulang kali.
