2013-10-04 41 views
2

如何使用通用脚本语言(如python,ruby或bash)来完成此操作?也就是说,我想编写一个脚本,它将返回“有效”或“过期”结果。它看起来像openssl程序与s_client选项可能能够做到这一点,或返回一个可以检查的结果。以编程方式检查网站的SSL证书是否过期

啊哈:默认情况下,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

我发现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> 
相关问题