Birden fazla sertifikanın bitiş süresini öğrenme

Birden fazla sertifikanız var ve bunların son tarihlerini öğrenmek istiyorsunuz. Bu gibi bir işi aslında herhangi bir araç bulupta yapabilirsiniz. Ancak eğer amacımız sadece sertifikaların expire zamanlarını öğrenmek ise Linux ortamından ve openssl uygulamasından yararlanarak hızlı sorgulamalar gerçekleştirebiliriz.

Temel olarak openssl client uygulamasını baz alan aşağıda yazdığım script’i kullanarak sertifikalarınızın son tarihlerini öğrenebilirsiniz.

#!/bin/bash
parametre_sayisi=$#
kullanim(){
	echo "Kullanımı: /path/sertifika_kontrol [-d,-f] [domainadi,dosyaadi]"
}
if [[ "$parametre_sayisi" < "2" ]];then
	kullanim
else
	parametre=$1
	echo "Mevcut tarih : `date +"%d/%m/%Y %H:%M"`"
	kontrol()
	{
		bitis_tarihi="`echo | 
		openssl s_client -connect $1:443 2>/dev/null |
		openssl x509 -noout -dates 2>/dev/null | 
		grep notAfter | 
		cut -d "=" -f2 | 
		xargs -i date -d{} +"%d/%m/%Y %H:%M"`"
		
		if [[ $bitis_tarihi ]]; then
			echo "# $1 ~ Bitis Tarihi: $bitis_tarihi" 
		else
			echo "# $1 - Bulunamadi"
		fi
	}	
	if [ "$parametre" == "-f" ];then
		while read -r satir; do
			kontrol $satir
		done < $2
	elif [ "$parametre" == "-d" ]; then
		for ((i = 2; i <= $parametre_sayisi; i++));do
			kontrol ${!i}
		done
	else
		kullanim
	fi
fi

Kullanımına örnekler verelim isterseniz.

-d parametresi ile birlikte bir veya daha fazla adres için sorgulama gerçekleştirilir.

s1 - Birden fazla sertifikanın bitiş süresini öğrenme

-f parametresiyle birlikte belirtilen dosyadaki her satır bir adres olarak kabul edilerek sorgu gerçekleştirilir.

s2 - Birden fazla sertifikanın bitiş süresini öğrenme