我正在尝试针对新的PayPal测试端点进行测试:https://tlstest.paypal.com
。PayPal TLS测试URL - PHP curl SSL协议错误
看到这个页面的最底部:TLS 1.2 and HTTP/1.1 Upgrade Microsite(验证你的...)。
我使用PHP(28年3月5日)和卷曲(7.30.0 - OpenSSL的/ 0.9.8y - libssh2/1.4.2)在Windows Server 2008 R2和IIS 7.5:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://tlstest.paypal.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // CURL_SSLVERSION_TLSv1_2
$result = curl_exec($ch);
echo 'result = '.$result.'<br>';
echo 'errno = '.curl_errno($ch).'<br>';
echo 'error = '.curl_error($ch).'<br>';
curl_close($ch);
我“M收到此错误:
35 Unknown SSL protocol error in connection to tlstest.paypal.com:443
我发现这一点:Github - Unknown SSL protocol error其中有人说:
Openssl must be at 1.0.1 or higher for TLS 1.2.
这是正确的..?
我的PHP OpenSSL版本为:OpenSSL/0.9.8y
(来自phpinfo()
)。
如果你确实需要的OpenSSL 1.0.1或更高版本才能使用TLS 1.2,则可能运行PHP以较小的OpenSSL的版本(我猜这是一个很大!)每个服务器将无法使用任何贝宝的API或即将推出PayPal IPN。
如何在Windows上更新我的PHP OpenSSL版本..?
升级到PHP 5.6后,SSL握手是否成功完成,而没有自己指定SSL版本?你是否更新了卷曲版本,或者仍然是7.30? –
我离开了SSL版本,所以不确定它是否能正常工作,可能会尽快... cURL verson现在是7.36.0,这似乎与PHP 5.6.0。 –