【问题标题】:Zend_Http_Client and TLS 1.2 in Zend Framework 1Zend Framework 1 中的 Zend_Http_Client 和 TLS 1.2
【发布时间】:2016-06-09 11:19:25
【问题描述】:

我可以在这里看到如何为 Zend_Http_Client 设置套接字适配器

http://framework.zend.com/manual/1.12/en/zend.http.client.adapters.html

他们给出的例子是 tls 或 sslv2。

有人知道 tls1.2 的设置是什么吗?

我尝试了一些,但我只是猜测。我收到以下错误:

Unable to find the socket transport "tls1.2" - did you forget to enable it when you configured PHP?'

如果我自己尝试 tls,我会得到:

Unable to Connect to tls://www.sandbox.paypal.com:443

(对于其他谷歌搜索,这是为了修复我们使用 PayPal 进行的 IPN 验证,这会在我们的 SSL 连接上出现以下错误:

Error in cURL request: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

)

【问题讨论】:

    标签: zend-framework tls1.2


    【解决方案1】:

    你很接近!将ssltransport 设置为tlsv1.2

    $config = array(
        'adapter'      => 'Zend_Http_Client_Adapter_Socket',
        'ssltransport' => 'tlsv1.2'
    );
    
    $client = new Zend_Http_Client('https://www.sandbox.paypal.com', $config);
    
    $response = $client->request();
    echo $response->getStatus();
    

    首先检查 Zend_Http_Client_Adapter_Socket 用于发送 HTTP 请求的内容,结果是 stream_socket_client()。您可以在系统上运行stream_get_transports() 以查看可用套接字传输的列表。

    有关如何选择特定 SSL/TLS 版本的更多示例,请参阅 PHP 5.6.x 中的 OpenSSL 更改 迁移指南中的 SSL/TLS version selection

    在 Ubuntu 14.04 Trusty 上使用 PHP 5.6 进行测试,它支持开箱即用的 TLSv1.2。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 2017-10-07
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多