如何使用常见的脚本语言(如python,ruby或bash)完成此操作?即,我想写一个脚本,它将返回“有效”或“过期”的结果。看起来具有openssl
选项的s_client
程序可能会执行此操作,或返回可以检查的结果。
啊哈:默认情况下,curl会验证网站的证书。如果它已过期,它将返回这样的消息:
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
不是很具体,但很明显证书有失败。它链接到此页面以获取信息:http://curl.haxx.se/docs/sslcerts.html
答案 0 :(得分:0)
我发现ruby bindings for libcurl可以进行非常一般的测试:
$ gem install curb
$ pry
[1] pry(main)> require 'curl'
=> true
[2] pry(main)> Curl.get('https://site-with-expired-cert.com')
Curl::Err::SSLCACertificateError: Curl::Err::SSLCACertificateError
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/curb-0.8.5/lib/curl/easy.rb:62:in `perform'
[3] pry(main)> Curl.get('https://github.com')
=> #<Curl::Easy https://github.com>