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生成带有雪花背景的验证码
Oct 09 PHP
给初学PHP的5个入手程序
Nov 23 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
php简单获取复选框值的方法
May 11 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 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
php检测useragent版本示例
2014/03/24 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python远程连接MySQL数据库
2019/04/19 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
pandas的排序和排名的具体使用
2019/07/31 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
职业规划书如何设计?
2014/01/09 职场文书
文科生自我鉴定
2014/02/15 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
《赶海》教学反思
2014/04/20 职场文书
民政工作个人总结
2015/02/28 职场文书
暑期工社会实践报告
2015/07/13 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js