curl PHP linux 下取值 https

问题发现:
PHP中编程时 curl 返回 0.
测试:https://github.com
有值。
但用有密码权限的网址。返回 0.
在 shell 下 执行 curl 得到出错信息:如下:
curl: (35) Unknown SSL protocol error in connection to secure-distribution-xml.booking.com:443


下面这样就行:


  
<?php
$url = 'https://xxx.xxx.com/xxx/xx';


$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);


?>


记得设置CURLOPT_SSL_VERIFYPEER


shell命令的,可以加-k参数来允许不使用证书连接到SSL站点


curl -k "https://xxxx.xxx.xx/"


----------------------------------
当使用php curl 的时候,提示Unknown SSL protocol error in connection to
经过多次尝试,有两种途径可以解决。
一,不走ssl


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
经测试,对于强制要使用https的无效


二,是:


curl_setopt($ch, CURLOPT_SSLVERSION, 3); // Force SSLv3 to fix Unknown SSL Protocol error
原来CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。

你可能感兴趣的:(curl PHP linux 下取值 https)