Bir betik, bir cron görevi ve birkaç e-posta: küçük ve orta ölçekli yapılar için sertifika süre takip sistemi bundan fazlasını gerektirmez. Önemli olan kontrolün otomatik, sonucun görünür ve uyarının zamanında olmasıdır.
1. Hedef listesi
İzlenecek alan adlarını ve portları bir dosyaya yazın:
# /opt/ssl-takip/hedefler.txt
example.com:443
www.example.org:443
mail.example.com:465
2. Kontrol betiği
#!/bin/bash
# /opt/ssl-takip/kontrol.sh
ESIK=30
while read -r hedef; do
[ -z "$hedef" ] && continue
host=${hedef%%:*}
if ! echo | openssl s_client -servername "$host" -connect "$hedef" 2>/dev/null \
| openssl x509 -noout -checkend $((ESIK*86400)) >/dev/null; then
echo "UYARI: $hedef sertifikasi $ESIK gun icinde bitiyor veya okunamadi"
fi
done < /opt/ssl-takip/hedefler.txt
-checkend, sertifika belirtilen saniye içinde bitecekse sıfır olmayan çıkış kodu döndürür.
3. Zamanlama ve bildirim
0 7 * * * /opt/ssl-takip/kontrol.sh | mail -s "SSL uyarilari" ekip@ornek.com
Betik bir şey yazdırmadıysa e-posta gönderilmez; bazı sistemlerde boş çıktıda mail göndermemek için mail yerine çıktıyı kontrol eden bir koşul ekleyin.
Sık hatalar
- Sertifika okunamadığında sessiz geçmek; yukarıdaki betik bunu da uyarı sayar.
- Yalnızca ana alan adını izleyip alt alan adlarını atlamak.
- Sunucu yeni sertifikayı kurmuş ama servis yeniden başlamadığı için eski sertifikanın sunulması.
Dış kontrol
Bir makinenin kendi kendini izlemesi yeterli değildir; dışarıdan da bakın. SSL kontrol aracı bitiş tarihini ve zinciri gösterir. Bizden aldığınız sertifikalarda yaklaşan bitiş için ayrıca hatırlatma alırsınız; yenileme için SSL sertifikaları sayfasını kullanabilirsiniz.
Basit tutun, her gün çalıştırın ve uyarıyı gerçekten okuyacak birine yönlendirin.
Geliştirme fikirleri
- Uyarı eşiğini ikiye bölün: 30 gün için bilgi, 14 gün için acil.
- Betik çıktısını bir log dosyasında tutup geçmişi inceleyin.
- SMTP bağlantılarında
openssl s_client -starttls smtpkullanarak e-posta sunucusu sertifikalarını da izleyin.