2016-06-09 83 views
0

我可以在这里看到如何设置插座适配器一个Zend_Http_Client一个Zend_Http_Client和TLS 1.2 Zend框架1

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 

(替他人谷歌搜索,这是解决我们与贝宝IPN验证它提供了以下错误我们的SSL连接上:

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

回答

0

你是接近!将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 version selection关于如何选择特定SSL/TLS版本的更多示例,请参阅PHP 5.6.x中的OpenSSL更改迁移指南。

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