用于警告 apache2 证书即将过期的脚本?

用于警告 apache2 证书即将过期的脚本?

在 Redhat 中,有一个名为 的脚本,certwatch当 Apache 证书即将过期时会发出警告。Ubuntu 有类似的脚本吗?谢谢。

答案1

它似乎certwatch也已从 RHEL 中分离出来,并且也可作为独立脚本使用。

此外,还有一个名为ssl-cert-check也可以检查证书是否过期。

用法:

$ ssl-cert-check -s {SERVER_NAME} -p {PORT}

脚本是描述在这里

最后,您还可以openssl直接使用来获取到期日期和时间:

$ echo | openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -dates

答案2

(尽管 Artur 的回答可能有助于我们避免重复劳动)

openssl有“检查日期”标志……可在 cron 作业(或脚本)中轻松使用

在本地证书上:(我有一个名为 pull192.168.13.5.pem 的证书)

openssl x509 -in pulled192.168.13.5.pem -noout -enddate- 输出到期日期

notAfter=2025 年 7 月 23 日 17:56:34 GMT

-检查结束标志接受你的日期(想想天数)以秒为单位输入。
openssl x509 -in pulled192.168.13.5.pem -noout -checkend 9999- 输出是否在您输入的时间范围内到期(以秒为单位)

证书不会过期

openssl x509 -in pulled192.168.13.5.pem -noout -enddate -checkend 9999- 结合两个标志

notAfter=Jul 23 17:56:34 2025 GMT
证书不会过期

openssl x509 -in pulled192.168.13.5.pem -noout -enddate -checkend 99999999999

notAfter=Jul 23 17:56:34 2025 GMT
证书将过期

或者远程拉取:

openssl s_client -connect 192.168.13.3:443 </dev/null 2>/dev/null | openssl x509 -noout -enddate -checkend 9999

notAfter=Mar 20 18:54:38 2023 GMT
证书不会过期

openssl s_client -connect 192.168.13.3:443 </dev/null 2>/dev/null | openssl x509 -noout -enddate -checkend 99999999999

notAfter=Mar 20 18:54:38 2023 GMT
证书将过期

回答这个问题:(“编写脚本”......)

在命令行上这有效:(我有另一个本地证书将在不到 10 天内过期)

openssl x509 -in signed.domain.pem -checkend 864000 -noout || notify-send "Cert will expire soon"- 如果证书在 10 天内(864000 秒)到期,将使用通知发送显示自定义通知

另外,在通知中显示我们正在测试的天数。
当我们想要增加/减少证书到期前的测试天数时,我们可以更改 secs 值,而不是直接更改 -checkend 值。
secs=864000; let days=$secs/60/60/24; openssl x509 -in signed.domain.pem -checkend $secs -noout || notify-send "Cert will expire soon (less than $days days)"

答案3

我开始厌倦打字openssl命令,所以我现在使用(并维护)名为https-*上市这里

相关内容