天天看點

linux pem證書過期,如何從PEM編碼的證書中确定SSL證書的到期日期?

這是一個bash函數,它會檢查您的所有伺服器,假設您正在使用DNS循環法 . 請注意,這需要GNU日期,并且不适用于Mac OS

function check_certs () {

if [ -z "$1" ]

then

echo "domain name missing"

exit 1

fi

name="$1"

shift

now_epoch=$( date +%s )

dig +noall +answer $name | while read _ _ _ _ ip;

do

echo -n "$ip:"

expiry_date=$( echo | openssl s_client -showcerts -servername $name -connect $ip:443 2>/dev/null | openssl x509 -inform pem -noout -enddate | cut -d "=" -f 2 )

echo -n " $expiry_date";

expiry_epoch=$( date -d "$expiry_date" +%s )

expiry_days="$(( ($expiry_epoch - $now_epoch) / (3600 * 24) ))"

echo " $expiry_days days"

done

}

輸出示例:

$ check_certs stackoverflow.com

151.101.1.69: Aug 14 12:00:00 2019 GMT 603 days

151.101.65.69: Aug 14 12:00:00 2019 GMT 603 days

151.101.129.69: Aug 14 12:00:00 2019 GMT 603 days

151.101.193.69: Aug 14 12:00:00 2019 GMT 603 days