SSL sertifikalarının süresinin düzenli takibi, web sitelerinin güvenliği ve operasyonel süreklilik açısından kritik öneme sahiptir. Bash scriptleri, bu süreci otomatikleştirerek manuel kontrollerin önüne geçebilir ve olası sertifika süresi bitişlerini erken tespit edebilirsiniz.
İlk olarak,
openssl komut satırı aracını kullanarak belirli bir alan adının SSL sertifikasının bitiş tarihini sorgulayabiliriz. Örneğin, aşağıdaki komut,
example.com adresinin sertifika bitiş tarihini getirir:
1openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
Burada,
-connect parametresiyle hedef sunucu ve port belirtilir. Çıktıda, "notBefore" ve "notAfter" tarihleri bulunur. Bu tarihleri alıp karşılaştırmak için Bash betiği yazılabilir. Örneğin:
1234567891011121314
#!/bin/bash
HOST=example.com
PORT=443
END_DATE=$(echo | openssl s_client -connect $HOST:$PORT -servername $HOST 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
END_TIMESTAMP=$(date -d "$END_DATE" +%s)
CURRENT_TIMESTAMP=$(date +%s)
DIFF=$(( ($END_TIMESTAMP - $CURRENT_TIMESTAMP) / 86400 ))
if [ $DIFF -le 30 ]; then
echo "Uyarı: SSL sertifikası $HOST için $DIFF gün içinde sona erecek."
else
echo "SSL sertifikası $HOST için güncel ve geçerliliği devam ediyor."
fi
Bu script, sertifikanın bitiş tarihine kalan günü hesaplar ve 30 günden azsa uyarı verir. Çoklu domainler veya sunucular için, liste halinde tarama ve raporlama eklenebilir.
Bağlantı hatası veya sertifika geçersizliği gibi durumlar için hata kontrolleri yapılmalı. Ayrıca, otomasyon sistemleriyle entegre edilerek belirli zamanlarda çalıştırılabilir. Güvenlik açısından, scriptlerin erişim izinleri ve loglama mekanizmaları önemlidir.
Sertifika yenileme sürecini otomatik hale getirmeyi düşünüyorsanız, Let's Encrypt gibi ücretsiz sertifika sağlayıcılarının API ve otomasyon araçlarını kullanmak, süreci daha sağlıklı yönetmenize olanak tanır.
Sizce, bu tür otomasyonlar hangi durumlarda kritik öneme sahip olur? Ayrıca, kendi ortamlarınızda benzer kontrolleri nasıl uyguluyorsunuz?