cURL 不连接到 HTTPS,而 wget 却连接到(NSS 错误 -12286)

cURL 不连接到 HTTPS,而 wget 却连接到(NSS 错误 -12286)

NSS error -12286我使用从 HTTPS 下载文件时遇到错误curl

我可以毫无问题地下载相同的文件,wget因此我可以排除任何防火墙或黑名单问题。

已经尝试过,但没有运气,选项-k--cipher ecdhe_ecdsa_aes_128_gcm_sha_256,根据此处的 Qualys SSL Labs 测试服务器工具,这是服务器首选密码:https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest

这是cURL日志:

# curl -v https://www.intribunale.net/immobili
* About to connect() to www.intribunale.net port 443 (#0)
*   Trying 104.27.150.214... connected
* Connected to www.intribunale.net (104.27.150.214) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error

我的库版本是:

# curl -V
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

答案1

解决方案是使用 CentOS 6 的第三方存储库或从源代码构建升级到 cURL 7.42

答案2

我们在使用 curl 7.19.7 时遇到了同样的问题。我们升级了 NSS,它解决了这个问题!

答案3

在具有最新 openssl 软件包 (1.0.1e) 的 CentOS 6 上,您应该更新 nss (yum update nss),如上面 DiegoG 所写。命令 update-ca-trust 也很有帮助。如果您通过 php 使用curl - 重新启动您的网络服务器进程/服务(即服务httpd 重新启动)。

相关内容