Sertifikat yang kedaluwarsa adalah salah satu penyebab paling umum layanan web tiba-tiba tidak bisa diakses. Pengguna menelepon, tim kebingungan, dan masalah sebenarnya cukup sederhana—sebuah berkas yang lupa diperbarui. OpenSSL CLI adalah alat bawaan hampir semua sistem operasi berbasis Unix yang bisa mengecek kondisi sertifikat dalam hitungan detik.

Artikel ini berfokus pada pemeriksaan sertifikat di server milik sendiri atau sistem yang sudah Anda kelola. Praktik ini legal, etis, dan merupakan rutinitas standar administrator sistem. Semua perintah di sini dijalankan untuk memastikan layanan tetap sehat—bukan untuk memeriksa sistem pihak lain tanpa izin.

Menampilkan Detail Sertifikat dengan s_client

Perintah paling dasar untuk memeriksa sertifikat yang sedang aktif di server adalah openssl s_client. Format umumnya seperti ini:

openssl s_client -connect subuh.id:443 -servername subuh.id </dev/null

Parameter -connect menentukan alamat dan port, sedangkan -servername mengaktifkan SNI—mekanisme yang wajib ada pada server yang menampung banyak domain dalam satu IP. Tambahan </dev/null membuat perintah selesai otomatis alih-alih menunggu input manual.

Outputnya akan menampilkan seluruh rantai sertifikat yang dikirim server, dimulai dari sertifikat entitas akhir hingga sertifikat akar. Bagian paling penting adalah blok Certificate chain yang menunjukkan urutan dan kedalaman sertifikat, lalu detail Server certificate yang memuat informasi lengkap.

Untuk membaca detail spesifik saja, gabungkan s_client dengan x509:

openssl s_client -connect subuh.id:443 -servername subuh.id </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Perintah ini akan menghasilkan tiga baris kunci: subjek sertifikat, penerbitnya, serta rentang tanggal notBefore dan notAfter. Angka pada notAfter adalah masa berlaku sertifikat—titik kritis yang harus dicatat. Jika sudah lewat atau mendekati, ganti sertifikat segera.

Memeriksa Rantai Sertifikat yang Lengkap

Rantai sertifikat yang tidak lengkap sering menyebabkan galat hanya di sebagian perangkat. Browser desktop besar kadang menyimpan sertifikat menengah di cache, sehingga situs tetap terlihat normal. Sementara itu, aplikasi mobile, perangkat IoT, atau tools berbasis curl justru menolak koneksi karena tidak bisa membangun jalur ke sertifikat akar yang tepercaya.

Cara melihat rantai yang dikirim server:

openssl s_client -connect subuh.id:443 -showcerts </dev/null

Perhatikan blok Certificate chain. Seharusnya ada minimal dua entri: sertifikat entitas akhir pada kedalaman 0 dan sertifikat menengah pada kedalaman 1. Jika hanya ada satu entri, server kemungkinan hanya mengirim sertifikat akhir tanpa intermediate—skenario khas yang memicu keluhan parsial dari pengguna.

Verifikasi dengan openssl verify memberikan jawaban langsung:

openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /path/fullchain.pem

Balasan OK berarti rantai bisa dibangun sepenuhnya. Jika muncul unable to get local issuer certificate, berarti ada sertifikat menengah yang hilang dari konfigurasi server. Solusinya adalah menggabungkan sertifikat akhir dan intermediate ke dalam satu berkas fullchain.pem sesuai urutan, lalu memuat ulang konfigurasi web server.

Mengecek Masa Berlaku Secara Terjadwal

Pemeriksaan rutin mencegah layanan mati mendadak karena sertifikat kedaluwarsa. Daripada menunggu laporan pengguna, jalankan pengecekan otomatis terhadap semua domain yang Anda kelola. Ekstrak tanggal kedaluwarsa ke format yang bisa dibandingkan:

echo | openssl s_client -connect subuh.id:443 -servername subuh.id 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2

Output berupa tanggal dalam format notAfter. Untuk keperluan monitoring, x509 -checkend memberikan kode keluar yang mudah dievaluasi:

openssl x509 -in /path/cert.pem -checkend 86400 -noout

Angka 86400 adalah detik—dalam kasus ini 24 jam. Perintah mengembalikan kode 0 jika sertifikat masih valid melewati rentang tersebut, dan kode 1 jika akan kedaluwarsa lebih cepat. Logika ini langsung bisa dipasang ke cron:

0 8 * * * /usr/bin/openssl x509 -in /etc/letsencrypt/live/subuh.id/cert.pem -checkend 604800 -noout || /usr/local/bin/alert-kadaluarsa.sh

Jadwal tersebut memeriksa sertifikat setiap pagi dan memanggil skrip peringatan jika masa berlaku kurang dari tujuh hari. Pola yang sama bisa diulang untuk seluruh daftar domain, cukup dengan loop sederhana membaca berkas teks berisi alamat server.

Validasi Konfigurasi Lokal

Tidak semua pemeriksaan harus dilakukan terhadap server aktif. Sebelum memasang sertifikat baru, periksa berkasnya secara langsung untuk memastikan isinya benar:

openssl x509 -in cert.pem -noout -text

Output lengkap memuat algoritma kunci, sidik jari SHA, ekstensi SAN (Subject Alternative Name), serta daftar nama domain yang dicakup. Kebanyakan kasus salah konfigurasi—sertifikat dikeluarkan untuk domain lain atau nama subdomain tertinggal—bisa dideteksi dari bagian SAN ini.

Sidik jari sertifikat juga penting saat mendistribusikan ke sistem lain. Bandingkan hasil di server dengan hasil lokal:

openssl x509 -in cert.pem -noout -fingerprint -sha256

Jika kedua nilai sama, berkas telah dipindahkan tanpa perubahan. Jika berbeda, ada kesalahan dalam proses penyalinan atau berkas tertukar.

Bahan Belajar Lanjutan

Dokumentasi resmi OpenSSL adalah rujukan paling akurat untuk daftar parameter lengkap. Portal seperti software.indowebster.com sering mengulas tool administrasi sistem lain yang relevan untuk tugas serupa. Bagi yang ingin pendalaman dari sisi praktis, situs komunitas seperti kalilinux.net dan kalilinux.info menyediakan referensi lanjutan tentang penggunaan OpenSSL dalam konteks audit keamanan—pastikan materinya diterapkan hanya pada infrastruktur yang Anda miliki atau diberi wewenang untuk dikelola.

Pemeriksaan sertifikat adalah pekerjaan pencegahan yang murah namun sering terlewat. Dua perintah s_client dan x509 saja sudah cukup untuk mengungkap sebagian besar masalah umum—sertifikat kedaluwarsa, rantai putus, atau cakupan nama domain yang salah. Mulailah dari satu domain, catat tanggal notAfter, dan jadwalkan pengecekan berkala. Pengguna akan terbiasa dengan layanan yang selalu tersedia, dan tim tidak perlu lagi panik menerima keluhan mendadak.