我有一个客户端有一个旧的商店软件,它有一个Paypal插件,似乎不适用于卷曲与nss。所以我需要把它改成openssl。
如何告诉curl使用openssl?
这是一个虚拟服务器:
CentOS 6.7 Plesk 12.5 四核AMD Opteron(tm)处理器2352(4核)
答案 0 :(得分:1)
我有一个旧客户端,服务器使用PHP 5.3.3,使用curl和SSL版本NSS / 3.12.7.0。我们无法向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!
答案 1 :(得分:0)
我非常确定您需要重建(或者,更好/更容易,使用您的软件包管理器重新安装)curl,并且您需要确保预先构建/安装了OpenSSL (我打算以某种方式打赌)。我不认为nss和OpenSSL有相同的API,所以你不能做一些LD路径魔法来在两者之间切换。