rename directory
This commit is contained in:
57
Template App Nginx by Zabbix agent Enhanced/cert-check
Normal file
57
Template App Nginx by Zabbix agent Enhanced/cert-check
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
host=$1
|
||||
port=$2
|
||||
sni=$3
|
||||
proto=$4
|
||||
|
||||
if [ -z "$sni" ]
|
||||
then
|
||||
servername=$host
|
||||
else
|
||||
servername=$sni
|
||||
fi
|
||||
|
||||
if [ -z "$port" ]
|
||||
then
|
||||
port="443"
|
||||
fi
|
||||
|
||||
if [ -n "$proto" ]
|
||||
then
|
||||
starttls="-starttls $proto"
|
||||
fi
|
||||
|
||||
cert_data=`openssl s_client -servername $servername -host $host -port $port $starttls -prexit </dev/null 2>/dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p'`
|
||||
if [ -n "$cert_data" ]; then
|
||||
Rcert=true
|
||||
validate_hostname=`echo "$cert_data" | openssl x509 -checkhost $servername 2>/dev/null | grep 'does NOT match certificate'`
|
||||
if [ -z "$validate_hostname" ]; then
|
||||
Rhostname=true
|
||||
else
|
||||
Rhostname=false
|
||||
fi
|
||||
end_date=`echo "$cert_data" | openssl x509 -dates -noout 2>/dev/null | sed -n 's/ *notAfter=*//p'`
|
||||
if [ -n "$end_date" ]; then
|
||||
end_date_seconds=`date '+%s' --date "$end_date"`
|
||||
now_seconds=`date '+%s'`
|
||||
remaining_days=`echo "($end_date_seconds-$now_seconds)/24/3600" | bc`
|
||||
if [ "$remaining_days" -lt 0 ]; then
|
||||
Rdays=0
|
||||
else
|
||||
Rdays=$remaining_days
|
||||
fi
|
||||
else
|
||||
echo '-1'
|
||||
fi
|
||||
issue_dn=`echo "$cert_data" | openssl x509 -issuer -noout 2>/dev/null | sed -n 's/ *issuer=*//p'`
|
||||
if [ -n "$issue_dn" ]; then
|
||||
Rissuer=`echo $issue_dn | sed -n -e 's/, CN = / - /g' -e 's/.*O = //p'`
|
||||
else
|
||||
Rissuer=""
|
||||
fi
|
||||
else
|
||||
Rcert=false
|
||||
fi
|
||||
|
||||
echo "{ \"cert\": ${Rcert}, \"valid_hostname\": ${Rhostname}, \"remaining_days\": ${Rdays}, \"issuer\": \"${Rissuer}\"}"
|
Reference in New Issue
Block a user