【发布时间】:2014-09-22 17:44:01
【问题描述】:
我正在尝试通过 cURL 访问一个内部站点(我可以在几天前访问)。但是,cURL 给出了错误curl: (60) SSL certificate problem: certificate has expired。如果我使用openssl 检查证书的开始日期和结束日期,它会给出一个我很好的时间范围:
echo | openssl s_client -connect internalsite.example.com:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Nov 30 00:00:00 2012 GMT
notAfter=Mar 30 12:00:00 2016 GMT
# For reference, the day I'm posting this is July 30th, 2014
此外,如果我在另一台计算机上使用 cURL,或通过浏览器(Firefox、Chrome 或 IE)连接,我可以正确连接。
另外,我无法在我自己的计算机上连接任何版本的 cURL;这包括 Cygwin 中的 cURL 和虚拟机中 Ubuntu 上的 cURL,以及 Windows 版本。
什么可能导致这种行为?
【问题讨论】:
-
是否有可能是内部站点正在使用 SNI,而您访问的站点的证书已过期?或者证书的签名者之一已过期?
-
我不这么认为。在其他机器上运行完全相同的命令可以正常工作,并且其他人的 cURL 可以很好地连接到服务器。我真的很困惑是什么原因造成的。
-
抱歉,您查看本地时钟了吗?
-
@RemiGacogne 我确实在主机和虚拟机中检查了本地时钟。两者都是准确的。这是截图:i.imgur.com/t2Yz6fH.png