php curl访问调用https时报错解决办法
发布:smiling 来源: PHP粉丝网 添加日期:2018-09-18 09:20:58 浏览: 评论:0
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.phpfensi.com', array('p'=>'hello'));
- echo ($data);
Tags: php curl https报错
- 上一篇:CSS 滤镜效果:模糊、灰度、亮度等
- 下一篇:php实现redis的服务端的示例
相关文章
- ·PHP 是什么?(2013-11-12)
- ·Php.ini文件位置在哪里 Php.ini文件找不到(2013-11-12)
- ·PHP 数据类型(2013-11-12)
- ·php 获取当前脚本的url(2013-11-12)
- ·php技术生成静态页面的实现(2013-11-13)
- ·缺陷月项目启动 披露PHP脚本语言漏洞(2013-11-13)
- ·在PHP中全面阻止SQL注入式攻击(2013-11-13)
- ·php生成随机密码的几种方法(2013-11-13)
- ·PHP中使用FCKeditor2.3.2配置(2013-11-13)
- ·如何使用PHP开发高效的WEB系统(2013-11-13)
- ·php:树形结构的算法(2013-11-13)
- ·php4和php5区别(2013-11-13)
- ·php数据库连接(2013-11-13)
- ·如何正确理解PHP的错误信息(2013-11-13)
- ·php页面漏洞分析及相关问题解决(2013-11-13)
- ·当在连接PHP时,抱怨一些数值没有定义参考?(2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)