如何检查远程ssl证书的到期日期

时间:2016-04-13 20:38:58

标签: openssl

我正在测试一个单行程,我最终将其放入脚本中以在cron上执行此操作。我想获取服务器列表并连接到它们并检查其证书的到期日期。

我目前正在使用openssl并运行客户端连接,然后获取输出并使用openssl获取证书的信息。 这是我目前为CLI测试(每个服务器将执行)但我收到错误。我错过了什么?

# /usr/local/ssl/bin/openssl s_client -connect my_web_server_ip:443 2>/dev/null | /usr/local/ssl/bin/openssl x509 -noout -dates
unable to load certificate
4274947916:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE

3 个答案:

答案 0 :(得分:1)

我知道这是一个旧的,但以为我还是会回答。

您的语法基本上是正确的:

$ openssl s_client -showcerts -servername somename.com -connect somename.com:443 | openssl x509 -noout -dates

-servername是openssl进行SNI请求所需要的。

编辑:我还应该注意,如果您只想知道证书何时到期,只需在该末尾扔一个grep即可:

...|grep ^notAfter

答案 1 :(得分:1)

您还可以检查是否在标题的 详细模式下使用CURL

curl -vIk https://www.stackoverflow.com

只需查找服务器证书:您会在下面看到 到期日期

答案 2 :(得分:0)

请检查cmd以获得Needed ans:

openssl x509 -noout -text -in abc.cer | grep Not

Output :

   Not Before: Aug 30 10:14:54 2018 GMT
   Not After : Aug 29 10:14:54 2021 GMT

说明:使用您的.cercrt证书名称。 abc.cer是我的证书。