Peramban Anda menyimpan sertifikat perantara di singgahan, mengingat kunjungan sebelumnya, dan bersikap pemaaf. Ia alat terakhir untuk menguji, bukan yang pertama. Perintah-perintah ini bertanya langsung ke servernya dan tak ada yang disinggahkan.
1. Apakah ia terverifikasi sama sekali
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com < /dev/null 2>/dev/null \
| grep -E 'Verify return code|^ *[0-9]+ s:'
Verify return code: 0 (ok) dan sekurangnya dua sertifikat terdaftar. Selain itu berarti rantai yang tidak lengkap.
2. Nama-nama apa yang dinaunginya
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com < /dev/null 2>/dev/null \
| openssl x509 -noout -text | grep -A1 "Subject Alternative Name"
3. Kapan ia kedaluwarsa
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null \
| openssl x509 -noout -dates
4. Setiap subdomain, bukan yang utama saja
for h in www shop api mail staging; do
printf '%-8s ' "$h"
echo | openssl s_client -connect "$h.yourdomain.com:443" -servername "$h.yourdomain.com" 2>/dev/null \
| openssl x509 -noout -enddate 2>/dev/null || echo "no certificate"
done
5. Tanpa singgahan, sebagai orang asing
curl -sS -o /dev/null -w '%{http_code} %{ssl_verify_result}\
' https://yourdomain.com/
# ssl_verify_result 0 is correct
6. Protokol lama, yang seharusnya ditolak
openssl s_client -connect yourdomain.com:443 -tls1_1 < /dev/null 2>&1 | tail -3
# a handshake failure here is the CORRECT result
TLS 1.0 dan 1.1 sudah ditarik, dan 3DES serta RC4 seharusnya tak berunding sama sekali. Kalau salah satunya tersambung, konfigurasinya sudah tua - setel
ssl_protocols TLSv1.2 TLSv1.3; dan daftar sandi yang modern.Lalu pantau kedaluwarsanya
0 8 * * * /usr/local/bin/check-cert.sh yourdomain.com 21 # warn 21 days out
Periksa sertifikatnya dari LUAR jaringan Anda juga. Tembok api atau proksi bisa menyajikan sertifikat yang berbeda di dalam, sehingga uji dari dalam bisa lolos sementara situs publiknya rusak.