[英]cURL PHP ERROR: Unknown SSL protocol error in connection
我正在尝试使用cURL PHP
发送Ajax
请求,但它给出了错误
Unknown SSL protocol error in connection
虽然我能够login
到同一服务器。
我已经试过了
curl_setopt( $ch, CURLOPT_SSLVERSION, 1 );
和Ajax
请求就是这样
$header = array('Accept' => '*/*',
"X-Requested-With" => "XMLHttpRequest",
"Content-Type" => "application/x-www-form-urlencoded");
$data = array('ClientNumber=999999&OrderClass=ContractOrders&ShowAll=ContractOrders&ShowPerPage=500');
echo $page = Spider::spider($header, 'https://wfs.nursefinders.com/MasterConsole/displayorders.cfm?ShowAll=ContractOrders', 'https://wfs.nursefinders.com/MasterConsole/BuildOrderDisplaySection.cfm', FALSE, $data[0]);
注意在spider
函数中,第一个参数是header
,第二个是referrer
第三个是url to access
,第四个无关紧要it's for cookie file
,第五个是data o post
我正在使用UBUNTU 14.10
,根据此命令/usr/bin/curl -V
, cURL Version
为curl 7.37.1
和通过php phpinfo()
打印相同
请帮忙
我相信问题的原因是与您通信的服务器不支持SSL协议。
此处有有关此信息的页面: http : //blog.techstacks.com/2010/03/3-common-causes-of-unknown-ssl-protocol-errors-with-curl.html
有关更多直接信息,请尝试查看API文档以获取其服务器所需的连接协议。 他们可能提供了将要连接的样本。
该服务器严重损坏。 它不支持最兼容的SSLv23握手,如果尝试尝试,它将挂起。 它仅支持显式SSL 3.0或TLS 1.0握手。 通过查看cURL的源代码,在我看来,所有实施TLS1.0 +的变体都将执行SSLv23握手,而服务器则不能:
-- curl-7.41.0/lib/vtls/openssl.c
1719 default:
1720 case CURL_SSLVERSION_DEFAULT:
1721 case CURL_SSLVERSION_TLSv1:
1722 case CURL_SSLVERSION_TLSv1_0:
1723 case CURL_SSLVERSION_TLSv1_1:
1724 case CURL_SSLVERSION_TLSv1_2:
1725 /* it will be handled later with the context options */
1726 req_method = SSLv23_client_method();
这仅留下使用不安全的SSL 3.0的选项,即
curl_setopt( $ch, CURLOPT_SSLVERSION, 3 );
虽然我没有要测试的PHP,但在命令行上对curl -1
和curl -3
进行了简短测试,确认CURLOPT_SSLVERSION为1
无效,而3
正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.