Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php curl访问调用https时报错解决办法

php curl访问调用https时报错解决办法

发布时间:2016-09-29   编辑:www.jquerycn.cn
jquery中文网为您提供php curl访问调用https时报错解决办法等资源,欢迎您收藏本站,我们将为您提供最新的php curl访问调用https时报错解决办法资源
curl默认是不能访问https了如果要curl访问https我们需要进行一些参数配置了,下面我们来看一篇关于php curl访问调用https时报错解决办法吧。


PHP 调用CURL提示错误:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed。这个是因为证书过期导致的。
SSL-ERROR

需要到 http://curl.haxx.se/ca/cacert.pem 下载信任证书。下载后,使其生效有两种方法:

第一种方法:修改 php.ini,找到 [curl]节点,如果没有,可以在php.ini底部添加。


[curl]
;修改为 http://curl.haxx.se/ca/cacert.pem 保存的路径
curl.cainfo="d:/php/cacert.pem"

第二种方法:保存到 程序所在目录,在调用curl的时候,增加一句:


<?php
    
    #cacert.pem 到 http://curl.haxx.se/ca/cacert.pem 下载
    curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
?>

 

可以使用下面代码,自动识别https或http

function curlPost($url, $data, $timeout = 30)
 {
     $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
     $ch = curl_init();
     $opt = array(
             CURLOPT_URL     => $url,
             CURLOPT_POST    => 1,
             CURLOPT_HEADER  => 0,
             CURLOPT_POSTFIELDS      => (array)$data,
             CURLOPT_RETURNTRANSFER  => 1,
             CURLOPT_TIMEOUT         => $timeout,
             );
     if ($ssl)
     {
         $opt[CURLOPT_SSL_VERIFYHOST] = 1;
         $opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
     }
     curl_setopt_array($ch, $opt);
     $data = curl_exec($ch);
     curl_close($ch);
     return $data;
 }
 $data = curlPost('https://www.jquerycn.cn', array('p'=>'hello'));
 echo ($data);
 

您可能感兴趣的文章:
php cURL https链接报错:Unknown SSL protocol error in connection to
php curl访问调用https时报错解决办法
PHP Curl出现403错误怎么办?curl错误解决方法
curl out of memory window下PHP调用curl报内存不够
PHP Warning: file_get_contents failed to open stream解决办法
解决php curl获取网页内容提示405 method not allowed状态码
C libcurl中使用curl_easy_getinfo 产生段错误分析
PHP接口--curl请求导致接收到报文不完整解决办法
php curl访问https实现代码
failed to open stream: HTTP request failed

[关闭]