php curl 获取https请求的2种方法


Posted in PHP onApril 27, 2015

今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”

很明显,验证证书的时候出现了问题。

使用curl如果想发起的https请求正常的话有2种做法:

方法一、设定为不验证证书和host。

在执行curl_exec()之前。设置option

$ch = curl_init();
......
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

方法二、设定一个正确的证书。

本地ssl判别证书太旧,导致链接报错ssl证书不正确。

我们需要下载新的ssl 本地判别文件

http://curl.haxx.se/ca/cacert.pem

放到 程序文件目录

curl 增加下面的配置

   curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); ;

   curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');

大功告成

(本人验证未通过。。。报错信息为:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed)

如果对此感兴趣的话可以参看国外一大神文章。http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

PHP 相关文章推荐
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
php使用websocket示例详解
Mar 12 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php中JSON的使用方法
Apr 30 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 #PHP
JavaScript实现滚动栏效果的方法
Apr 27 #PHP
php curl 上传文件代码实例
Apr 27 #PHP
php把大写命名转换成下划线分割命名
Apr 27 #PHP
PHP加密解密字符串汇总
Apr 26 #PHP
php开发中的页面跳转方法总结
Apr 26 #PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 #PHP
You might like
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
Python重新加载模块的实现方法
2018/10/16 Python
python reverse反转部分数组的实例
2018/12/13 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
大学生学业生涯规划
2014/01/05 职场文书
科学育儿宣传标语
2014/10/08 职场文书
2015年见习期工作总结
2014/12/12 职场文书
合同纠纷调解书
2015/05/20 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书