Centos 6 libCurl TLSv1 错误

Centos 6 libCurl TLSv1 Error

我有一个 php 脚本,它点击 https url 来获取数据。我之前使用的是 Centos 5,这个脚本没有显示任何问题。但是,在切换到 Centos 6 后,脚本停止工作,我不断收到的错误是 Unknown cipher in list: TLSv1.

在 php 脚本中我强制使用 TLSv1:

curl_setopt($ch, CURLOPT_SSLVERSION, 1);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');

我不确定是什么导致了这种情况发生。当前 Curl 版本是

curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 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 lib

OpenSSL 版本:

OpenSSL 1.0.1e-fips 11 Feb 2013

在 CentOS 5 上,curl 是针对 OpenSSL 构建的。

在 CentOS 6 上,curl 是针对 NSS 构建的。

它们不支持相同的密码列表字符串。话虽这么说,但在我不得不尝试的短时间内,我无法让任何密码字符串与 curl+NSS 一起使用。

此外,不要指望能够为根 certificates/etc 使用自定义证书存储。使用 curl+NSS...你不能。