Curl无法检索HTTPS内容

我在我的生产服务器上运行Debian 6(apt-get更新; apt-get升级成功完成)的问题。

当我打电话给一个HTTPS(StartSSL)服务器时,我在Debian 6上得到了一个错误信息:

#> curl --version curl 7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6 Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz #> curl https://mydomain.com/api/ curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html 

但是当我在Debian 7上调用相同的地址(服务器是最新的)时,一切正常。

 #> curl --version curl 7.26.0 (x86_64-pc-linux-gnu) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP #> curl https://mydomain.com/api/ {'code':'ko', 'message':'ERR_AUTH_BASIC_NEEDED'} 

你有什么想法,为什么HTTPS在Curl Debian 6上失败,并与Debian 7curl?

这不是过期的curl,而是系统使用的一系列根CA证书。 有效的证书可以随着CA的启动,停业或证书过期或被撤销或更新而随时间变化。

在debian中,这些都在ca-certificates包中 。 对于挤压,这几年似乎没有更新。 只有喘息和更新似乎接近目前的任何地方。 分布应该在分发的整个支持生命周期中更新,但Debian似乎并没有这样做。

你应该可以使用源码包来自行备份 (不要试图使用二进制包;它们的依赖关系也会被更新,并且会发生破坏)。