php curl 获取https请求的2种方法
今天一个同事反映,使用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 本地判别文件
放到 程序文件目录
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)
如果对此感兴趣的话可以参看国外一大神文章。
上一篇: 太震惊了!两块钱的它竟能赶走妇科病
下一篇: PHP加密解密字符串汇总
推荐阅读
-
php curl 获取https请求的2种方法
-
php curl获取https页面内容,不直接输出返回结果的设置方法
-
php使用curl获取https请求的方法
-
php之curl实现http与https请求的方法
-
php curl请求接口并获取数据的示例代码
-
PHP使用file_get_contents或curl请求https的域名内容为空或Http 505错误的问题排查方法
-
php使用curl获取https请求的方法_PHP教程
-
curl-php post提交数据,获取到的结果提示请求未找到!
-
PHP不用pthreads如何同时发起100个curl请求获取数据,并且保持主“线程”不断的向文件写入?
-
在Linux安装php的curl扩展,并支持https请求,重新编译法