php - 将 PHP cURL 请求从 SSLv3 更新为 TLS..?

标签 php ssl curl paypal

因为 recent vulnerability discovered in SSLv3 ,许多网络服务提供商(即 PayPal、Facebook、谷歌)正在禁用它并希望我们改用 TLS。我在弄清楚如何执行此操作时遇到了一些麻烦。

我目前正在使用以下函数来处理我的 cURL 请求。

function CURLRequest($Request = "", $APIName = "", $APIOperation = "", $PrintHeaders = false)
{
    $curl = curl_init();
            curl_setopt($curl, CURLOPT_VERBOSE, 1);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($curl, CURLOPT_TIMEOUT, 30);
            curl_setopt($curl, CURLOPT_URL, $this->EndPointURL);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);

    if($this->APIMode == 'Certificate')
    {
        curl_setopt($curl, CURLOPT_SSLCERT, $this->PathToCertKeyPEM);
    }

    $Response = curl_exec($curl);

    /*
     * If a cURL error occurs, output it for review.
     */
    if($this->Sandbox)
    {
        if(curl_error($curl))
        {
            echo curl_error($curl).'<br /><br />';  
        }
    }

    curl_close($curl);
    return $Response;   
}

当我尝试访问 PayPal 的沙箱时,虽然他们已经禁用了它,但我最终遇到了一个 cURL 错误:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure/p>

我发现的信息是我只需要将其更改为使用 TLS 而不是 SSL,而我看到的其他答案说只需向我的函数添加 curl 选项即可...

curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);

虽然我已经添加了该选项,但我仍然得到完全相同的结果。将不胜感激任何有关我如何进行这项工作的信息。谢谢!

最佳答案

复制自:SSL error can not change to TLS

尝试添加 curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');到你的代码。

如果您的 cURL 是基于 OpenSSL libssl 的,这将起作用,但如果基于 nss 则不起作用。

关于php - 将 PHP cURL 请求从 SSLv3 更新为 TLS..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763737/

相关文章:

android - 从 android 连接到 REST web 服务抛出 javax.net.ssl.SSLException : Not trusted server certificate

c# - 更新 SSL 设置后无法通过 SMTP 发送电子邮件

php - 尝试通过 PHP/MySQL 下载 Blob

PHP - 在 foreach 循环之外保存到数据库

PHP sql与foreach循环变量问题

c - 客户端连接时没有服务器证书和 "no shared cipher"

c - 使用mingw32编译时出现链接错误

c++ - 如何提取位置 : HTTP header field with libcurl?

c++ - 在 makefile 中链接库

php - Xdebug - 没有配置文件或跟踪输出