刘小帅

ssl-cert-check
数字证书已成为Internet商务的重要组成部分,并被广泛用于验证客户端和服务器的身份。所有数字证书都包含一个到期...
扫描右侧二维码阅读全文
03
2019/12

ssl-cert-check

数字证书已成为Internet商务的重要组成部分,并被广泛用于验证客户端和服务器的身份。所有数字证书都包含一个到期日期,大多数客户端和服务器应用程序都将在使用证书内容之前对其进行检查。如果客户端或服务器应用程序检测到证书已过期,通常将执行一个或多个特定于实现的操作(例如,中止连接,检查或更新吊销列表,警报用户等)。

当Web浏览器遇到过期的证书时,浏览器通常会向用户显示一条警告消息,指示证书已过期。在向用户显示警告后,某些浏览器将继续连接到该站点,而其他浏览器将向用户提示一个对话框,要求他们批准继续。这些警告对于典型的Web用户而言非常令人困惑,并导致大多数用户质疑他们尝试查看的网站的真实性。

如果应用服务器检测到与其通信的系统的过期证书,则该应用服务器可能会继续处理数据,就好像什么都没发生一样,或者连接可能会突然终止。遇到这种情况时,某些应用程序将记录一个有用的错误,而其他应用程序将显示“连接失败”消息以指示基础传输出现问题。如果将应用程序配置为在遇到过期的证书时中止通信,则通常会导致服务中断。如果在检测到过期的证书时,用于向公司或个人颁发证书的CA(证书颁发机构)不可用,则服务中断可能会迅速升级为重大灾难。这些事件不仅导致收入损失,

我支持许多网站,这是我工作的一部分,并且一直在寻找增加正常运行时间和提高用户对我们网站满意度的方法。

使用ssl-cert-check
ssl-cert-check是免费提供的,可以从prefetch.net Web服务器下载:

$ wget https://raw.githubusercontent.com/Matty9191/ssl-cert-check/master/ssl-cert-check

ssl-cert-check带有多个选项,可以使用“ -h”(帮助)选项进行查看:

$ ssl-cert-check -h

Usage: ssl-cert-check [ -e email ] [ -x expir_days ] [ -q ] [ -a ] [ -h ] [-i]
       {[ -s common_name ] && [ -p port]} || {-f cert_file} || {-c certificate file}

  -a               : Send a warning message through email
  -c cert file     : Print the expiration date for a PEM formatted
                     certificate passed as an option
  -e email address : Email address to send expiration notices
  -f cert file     : File with a list of FQDNs and ports
  -h               : Print this screen
  -i               : Print the issuer of the certificate
  -p port          : Port to connect to (interactive mode)
  -s commmon name  : Server to connect to (interactive mode)
  -q               : Don't print anything on the console
  -x days          : Certificate expiration interval (eg. if cert_date < days)
针对证书文件运行ssl-cert-check
如果您在Web服务器上管理大量证书,则可以使用ssl-cert-check打印每个证书的到期日期。要查看文件cacert.pem中存储的证书到期的日期,可以使用“ -c”(要处理的证书文件)选项和要处理的证书来执行ssl-cert-check:

$ ssl-cert-check -c /etc/ca/cacert.pem

Host                                            Status       Expires      Days Left
----------------------------------------------- ------------ ------------ ----------
FILE:/etc/ca/cacert.pem                         Valid        Jan 2 2008   807
ssl-cert-check将在第一列中打印文件或主机名,在第二列中显示该证书是否有效的值,在第三列中显示证书到期的日期,以及直到证书剩余的天数在第四列中到期。

针对网络可访问服务器运行ssl-cert-check
如果您没有本地访问证书文件的权限,则可以使用ssl-cert-check的网络连接选项从实时服务器中提取证书的到期日期。要检查prefetch.net Web服务器使用的证书何时到期,可以将服务器名称或IP地址和端口号传递给ssl-cert-check的“ -s”(服务器名称)和“ -p”(tcp)端口)选项:

$ ssl-cert-check -s mail.prefetch.net -p 443

Host                                            Status       Expires      Days Left
----------------------------------------------- ------------ ------------ ----------
prefetch.net:443                                Valid        Jun 20 2006  246
针对服务器列表运行ssl-cert-check
如果您管理数十个启用SSL的服务器,则可以将服务器名称和端口号放在一个文件中,然后对该文件运行ssl-cert-check:

$ cat ssldomains

prefetch.com 443
mail.prefetch.net 443
gmail.google.com 443
www.sun.com 443
www.spotch.com 443
$ ssl-cert-check -f ssldomains

Host                                            Status       Expires      Days Left
----------------------------------------------- ------------ ------------ ----------
prefetch.com:443                                Valid        May 23 2006  218
mail.prefetch.net:993                           Valid        Jun 20 2006  246
gmail.google.com:443                            Valid        Jun 7 2006   233
www.sun.com:443                                 Valid        May 11 2009  1302
www.spotch.com:443                              Connection refused Unknown Unknown
有时查看颁发证书的组织很有用。当使用“ -i”(打印发行者)选项执行ssl-cert-check时,将与证书的到期日期一起打印发行者:

$ ssl-cert-check -i -f ssldomains

Host                                Issuer            Status   Expires     Days Left
----------------------------------- ----------------- -------- ----------- ---------
prefetch.com:443                    Comodo Limited    Valid    May 23 2006 218
mail.prefetch.net:993               Equifax Secure In Valid    Jun 20 2006 246
gmail.google.com:443                Thawte Consulting Valid    Jun 7 2006  233
www.sun.com:443                     Sun Microsystems  Valid    May 11 2009 1302
www.spotch.com:443                  Unknown           Connection refused Unknown Unknown
证书过期时获取电子邮件通知
证书即将到期时,ssl-cert-check可以提供电子邮件通知。可以使用ssl-cert-check的“ -x”(到期间隔)选项来控制到期间隔,并且可以将发送通知的电子邮件地址作为参数传递给“ -e”(要发送的电子邮件地址)。警报)选项。如果文件ssldomains中列出的一个或多个主机之一包含将在未来60天内到期的证书,则以下示例使用这两个选项来发送电子邮件通知。

$ ssl-cert-check -a -f ssldomains -q -x 60 -e admin@prefetch.net

为了从ssl-cert-check中获得最大收益,应该每天或每周从调度工具(例如cron)运行ssl-cert-check。

结论
Last modification:December 3rd, 2019 at 02:50 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment