我正在使用PHP 5.3上的TLS1.1连接到远程服务器。
当使用Zend Framework 2时,我得到一个错误:
$client = new Client('https://www.example.com/');
$curlAdapter = new Client\Adapter\Curl();
$curlAdapter->setCurlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1);
$client->setAdapter($curlAdapter);
$client->send();
结果:cURL请求中出错:SSL连接错误
添加此项可以解决问题,但显然不那么安全
$curlAdapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
$curlAdapter->setCurlOption(CURLOPT_SSL_VERIFYPEER,false);
结果:它有效
使用本机PHP命令发出请求很好:
$c = curl_init('https://www.example.com/');
$options = array(
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_1,
);
curl_setopt_array ($c ,$options );
curl_exec($c);
返回页面内容。
所以PHP可以工作,但ZF2不能工作,除非VerifyPeer=false。有什么问题?