【发布时间】:2015-11-13 09:39:19
【问题描述】:
我的客户有一个旧的商店软件,该软件有一个 Paypal 插件,该插件似乎不适用于带有 nss 的 curl。所以我需要把它改成openssl。
如何让 curl 使用 openssl?
这是一个虚拟服务器:
CentOS 6.7 Plesk 12.5 四核 AMD Opteron(tm) 处理器 2352(4 核)
【问题讨论】:
我的客户有一个旧的商店软件,该软件有一个 Paypal 插件,该插件似乎不适用于带有 nss 的 curl。所以我需要把它改成openssl。
如何让 curl 使用 openssl?
这是一个虚拟服务器:
CentOS 6.7 Plesk 12.5 四核 AMD Opteron(tm) 处理器 2352(4 核)
【问题讨论】:
我有一个带有 PHP 5.3.3 服务器的旧客户端,使用 SSL 版本 NSS/3.12.7.0 的 curl。我们在向 PayWay 发送数据时遇到问题。他们报告说数据是通过 TLS1.0 发送的。
我已经检查了服务器使用
php -r '$ch = curl_init("https://www.howsmyssl.com/a/check"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); $json = json_decode($data); echo $json->tls_version;'
它正在返回 TLS1.0。
所有解决方案都是重建 curl 和 php。我正在重建卷曲的过程中。遇到一些错误,我必须先更新 ca 证书。
yum update ca-certificates
更新时,我看到nss 正在更新。
ca-certificates更新后,我再次查看了tls版本,现在使用的是TLS1.2!
【讨论】:
我很确定你需要重建(或者,更好/更容易,使用你的包管理器重新安装)curl,你需要确保你已经预先构建/安装了 OpenSSL(我敢打赌你以某种方式做)。我不认为 nss 和 OpenSSL 有相同的 API,所以你不能做一些 LD 路径魔术来在两者之间切换。
【讨论】:
./configure --with-ssl=/usr/include --without-nss 不幸的是,“./configure”似乎不起作用。我收到以下错误:“./configure - 没有这样的文件或目录”。我检查了是否通过以下方式安装了 openssl: rpm -qa | grep -i openssl 答案是:“openssl-1.0.1e-42.el6.x86_64” 那么我必须如何使用带有 curl 的 openssl?