Zend Framework 1中的Zend_Http_Client和TLS 1.2

时间:2016-06-09 11:19:26

标签: zend-framework tls1.2

我在这里可以看到如何为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?'

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

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

1 个答案:

答案 0 :(得分:2)

你很亲密!将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。