我正在测试一个单行程,我最终将其放入脚本中以在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
答案 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
说明:使用您的.cer
或crt
证书名称。 abc.cer
是我的证书。