За да проверите дали коректно е инсталиран даден сертификат, било то за https (порт 443) или за друга услуга – например IMAP (порт 993), може да използвате следния скрипт, с име check_ssl.sh
#!/bin/bash # function check_certs () { if [ -z "$1" ] then echo "Please enter the domain to check. Example: check_ssl.sh domain.com 443" exit 1 fi if [ -z "$2" ] then echo "Please enter the port to check. Example: check_ssl.sh domain.com 993" exit 1 fi name="$1" port="$2" shift now_epoch=$( date +%s ) dig +noall +answer $name | while read _ _ _ _ ip; do echo -n "SSL for: $name ($ip) on port: $port" expiry_date=$( echo | openssl s_client -showcerts -servername $name -connect $ip:$port 2>/dev/null | openssl x509 -inform pem -noout -enddate | cut -d "=" -f 2 ) issuer=$( echo | openssl s_client -showcerts -servername $name -connect $ip:$port 2>/dev/null | openssl x509 -inform pem -noout -issuer | sed -e 's/, ST/\nST/g' -e 's/, O/\nO/g' -e 's/, CN/\nCN/g' |grep "O =" | cut -d '=' -f2 ) echo -n " | Expire date: $expiry_date"; expiry_epoch=$( date -d "$expiry_date" +%s ) expiry_days="$(( ($expiry_epoch - $now_epoch) / (3600 * 24) ))" echo " | Left: $expiry_days days | Issuer:$issuer" done } check_certs $1 $2;
Задължително трябва да подадете както хост, който да бъде проверен, така и порт за услугата, която ще проверявате, например:
Проверка на HTTPS:
./check_ssl.sh google.com 443 SSL for: google.com (142.250.187.174) on port: 443 | Expire date: Nov 7 08:17:54 2022 GMT | Left: 65 days | Issuer: Google Trust Services LLC
Проверка на SMTP:
./check_ssl.sh smtp.gmail.com 465 SSL for: smtp.gmail.com (108.177.127.109) on port: 465 | Expire date: Nov 7 08:24:48 2022 GMT | Left: 65 days | Issuer: Google Trust Services LLC