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数据库的一些要注意的问题
Oct 09 PHP
PHP中实现进程间通讯
Oct 09 PHP
php下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
php的sso单点登录实现方法
Jan 08 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
php验证码生成代码
Nov 11 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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-fpm的两种进程管理模式详解
2013/06/03 PHP
php检测文本的编码
2015/07/26 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
写的htc的数据表格
2007/01/20 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
angular动态表单制作
2018/02/23 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
python归并排序算法过程实例讲解
2020/11/04 Python
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
给老师的检讨书
2014/02/11 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
英文升职感谢信
2015/01/23 职场文书
公司搬迁通知
2015/04/20 职场文书