小智 8
这是我想出的解决方案:
将此作为脚本并每天通过 cron 调用它,然后在其中一个证书即将到期时您将收到一封电子邮件:
#!/bin/bash
gracedays=14
for server in myserver1 myserver2 myserver3;
do
data=`echo | openssl s_client -connect "${server}:443" -servername "${server}" 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`
ssldate=`date -d "${data}" '+%s'`
nowdate=`date '+%s'`
diff="$((${ssldate}-${nowdate}))"
if test "${diff}" -lt "$((${gracedays}*24*3600))";
then
if test "${diff}" -lt "0";
then
echo "The certificate for ${server} has already expired."
else
echo "The certificate for ${server} will expire in $((${diff}/3600/24)) days."
fi
fi
done
Run Code Online (Sandbox Code Playgroud)
问题对我来说已经解决了,如果有人想让它更酷或放在某个存储库中,请将其设为模块:随意!
小智 6
Openssl 至少从 1.0.2 开始就内置了此功能。openssl x509 -checkend 86400
将检查证书在第二天的几秒钟内是否到期,并返回 ERRORCODE 以通过 bash 脚本进行直接测试。
归档时间: |
|
查看次数: |
5729 次 |
最近记录: |