2

如何使用 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

4

1 回答 1

0

我发现libcurl 的 ruby​​ 绑定可以做一个非常普遍的测试:

$ 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>
于 2013-10-04T03:34:06.413 回答