Tanpa perlu menggunakan website pihak ketiga untuk mengecek kapan SSL situs anda expired, bisa menggunakan openssl client yang sudah tersedia di Linux.
Contoh kita akan cek kapan SSL jaranguda.com expired
echo | openssl s_client -servername jaranguda.com -connect jaranguda.com:443 2>/dev/null | openssl x509 -noout -enddate # output notAfter=Jun 27 23:59:59 2022 GMT
dari output diatas bisa kita ketahui kalo SSL jaranguda.com akan expired pada 27 Juni 2022.
Keterangan dari perintah diatas:
echo di depan, agar openssl langsung exit begitu command openssl selesai
s_client : konek ke domain/ip sebagai client
-noout : tidak perlu menampilkan informasi sertifikat
-enddate: tanggal expired SSL.
Untuk melihat perbedaanya coba hapus echo dibagian paling depan
openssl s_client -servername jaranguda.com -connect jaranguda.com:443 2>/dev/null | openssl x509 -noout -enddate # output notAfter=Jun 27 23:59:59 2022 GMT
untuk keluar anda perlu menekan kombinasi CTRL
+ C
Agar kelihatan tanggal di terbitkan dan tanggal berakhir SSL ganti enddate
menjadi dates
echo | openssl s_client -servername jaranguda.com -connect jaranguda.com:443 2>/dev/null | openssl x509 -noout -enddate # output notBefore=Jun 28 00:00:00 2021 GMT notAfter=Jun 27 23:59:59 2022 GMT
tanggal sertifikat SSL tersebut diterbitkan bisa diambil dengan
echo | openssl s_client -servername jaranguda.com -connect jaranguda.com:443 2>/dev/null | openssl x509 -noout -startdate # output notBefore=Jun 28 00:00:00 2021 GMT
Cara ini tidak hanya untuk HTTP atau HTTPS tetapi bisa juga untuk service lainnya, contoh SMTP
echo | openssl s_client -connect smtp.mail.yahoo.com:587 -starttls smtp 2>/dev/null | openssl x509 -noout -dates # output notBefore=May 24 00:00:00 2021 GMT notAfter=Nov 17 23:59:59 2021 GMT
Pengecekan banyak domain, bisa dibuat scriptnya. Contohnya
#!/usr/bin/env bash # author : tommy @ jaranguda.com # cek tanggal expired SSL declare -a DOMAINLIST=( google.com:443 yahoo.com:443 jaranguda.com:443 ); for domain in ${DOMAINLIST[@]}; do DOMAIN=$(echo $domain | cut -d ':' -f1) PORT=$(echo $domain | cut -d ':' -f2) TANGGALEXPIREDSSL=$(echo | openssl s_client -servername $DOMAIN -connect $DOMAIN:$PORT 2>/dev/null | openssl x509 -noout -enddate) TANGGAL=$(echo $TANGGALEXPIREDSSL | sed 's/notAfter=//g') FORMATTANGGAL=$(date -d "${TANGGAL}" +"%d %B %Y") echo "${domain} : ${FORMATTANGGAL}" done
Contoh output dari script diatas
google.com:443 : 20 September 2021 yahoo.com:443 : 20 January 2022 jaranguda.com:443 : 28 June 2022