Bitiş tarihi alarmı kurmak için büyük bir altyapı gerekmez. Küçük bir betik ve cron, çoğu küçük ve orta ölçekli ortam için yeterlidir.
openssl ile kalan süre kontrolü
-checkend seçeneği, sertifikanın verilen saniye içinde sona erip ermeyeceğini çıkış koduyla bildirir (süre dolacaksa 1, dolmayacaksa 0 döner).
#!/bin/bash
# 30 gün = 2592000 saniye
ALAN="ornek.com"
echo | openssl s_client -connect "$ALAN:443" -servername "$ALAN" 2>/dev/null \
| openssl x509 -noout -checkend 2592000 >/dev/null
if [ $? -ne 0 ]; then
echo "$ALAN sertifikasi 30 gun icinde bitiyor" \
| mail -s "SSL uyari: $ALAN" ekip@ornek.com
fi
Cron ile çalıştırma
0 8 * * * /usr/local/bin/ssl_kontrol.sh
Sunucuda mail komutu yapılandırılmamışsa, bunun yerine bir webhook (Slack, Teams vb.) çağrısı veya başka bir bildirim kanalı kullanın.
Birden çok alan adı
- Alan adlarını bir dosyada listeleyin.
- Betik her satır için döngüyle çalışsın.
- Farklı port (ör. 465, 993) kullanan hizmetler için port değerini ayrı sütunda tutun.
Prometheus ile
- alert: SertifikaBitiyor
expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 21
for: 1h
labels: { severity: warning }
Bu kural, blackbox exporter kullanıyorsanız 21 günden az kalan sertifikalar için uyarı üretir.
Dikkat edilecekler
- Yalnızca sunucudaki dosyayı değil, gerçekten sunulan sertifikayı kontrol edin.
- CDN veya yük dengeleyici arkasında başka sertifika dönebilir.
- Alarm geldiğinde hangi adımları izleyeceğinizi belgeleyin.
Yenileme için SSL sertifikalarına, anlık kontrol için SSL kontrol aracına başvurabilirsiniz.