当前位置:首页 > PHP教程 > php高级应用 > 列表

php cURL https链接报错:Unknown SSL protocol error in connection to

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-22 17:11:07 浏览: 评论:0 

因爆出“OpenSSL Heartbleed”与“SSLv3中间人攻击”等漏洞,很多平台关闭掉SSLv2、SSLv3版本支持,不再支持部分使用SSLv2、 SSLv3或更低版本的客户端调用如微信公众平台等。

如果cURL操作https的url,请附带如下选项即可:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_SSLVERSION, 1);

例子:

  1. PHP CURL HTTPS POST 
  2. function vpost($url,$data){ // 模拟提交数据函数 
  3.     $curl = curl_init(); // 启动一个CURL会话 
  4.     curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 
  5.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 
  6.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在 
  7.     curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 
  8.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 
  9.     curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer 
  10.     curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 
  11.     curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 
  12.     curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 
  13.     curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 
  14.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 
  15.     $tmpInfo = curl_exec($curl); // 执行操作 
  16.     if (curl_errno($curl)) { 
  17.        echo 'Errno'.curl_error($curl);//捕抓异常 
  18.     } 
  19.     curl_close($curl); // 关闭CURL会话 
  20.     return $tmpInfo// 返回数据 
  21.  
  22. $url = "https://xxx.xxx.xxx/xxx"
  23. $data ="x=xxxxxx"
  24. $result = vpost($url,$data); 

Tags: cURL https Unknown SSL

分享到: