PayPal IPN OPENSSL错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败

Chi*_*235 2 php ssl paypal

我当前的PHP版本是5.3.最近我把它更新到5.2到5.3

我在谷歌搜索过我无法找到有关PayPal IPN验证的任何解决方案.

我看到我phpinfo()的启用了OPenSSL,但我仍然收到此错误消息 -

Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure in /home/xxx/public_html/paypal_test/socketopen.php on line 5

Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in /home/xxx/public_html/paypal_test/socketopen.php on line 5

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://www.sandbox.paypal.com:443 (Unknown error) in /home/xxx/public_html/paypal_test/socketopen.php on line 5
()
Run Code Online (Sandbox Code Playgroud)

我的代码是 -

<?php
$fp = fsockopen ( 'ssl://www.sandbox.paypal.com', "443", $err_num, $err_str, 60);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.sandbox.paypal.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
        echo "<br>";
    }
    fclose($fp);
}
?>
Run Code Online (Sandbox Code Playgroud)

我在不同的服务器上使用相同的代码,这段代码工作正常.但这不适用于我自己的服务器.请查看以下两个截图 -

实际产量 - 在此输入图像描述

我的输出 - 在此输入图像描述

我读了php-paypal-error:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败但没有得到任何确切的解决方案.请检查并让我知道.

谢谢.

Ste*_*ich 5

根据SSLLabs,该服务器仅支持TLS 1.2,即没有TLS 1.1,TLS 1.0或SSL 3.0.

我当前的PHP版本是5.3.最近我把它更新到5.2到5.3

鉴于您使用的是相当旧版本的PHP,您也可能使用较旧版本的OpenSSL.仅在OpenSSL版本1.0.1中添加了对TLS 1.2的必要支持.要找出您正在使用的版本,可以使用

 php -r 'printf("0x%x\n", OPENSSL_VERSION_NUMBER);'
Run Code Online (Sandbox Code Playgroud)

这应至少返回0x10001000(即版本1.0.1).以下任何内容都不支持TLS 1.2.