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 本地判别文件
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 curl 获取https请求的2种方法
- https php使用curl获取https请求的方法
- curl 获取 https 请求方法
- php使用curl获取https请求的方法
- php使用curl获取https请求的方法
- Web HttpServletRequest的getRequestURL方法获取不到https协议请求问题
- Spring MVC请求参数获取的方法
- PHP curl 直接获取请求变量,不直接输出
- PHP CURL获取返回值的方法
- php使用fsockopen请求方法,支持https/header设置/代理请求等定制
- file_get_contents无法请求https连接的解决方法
- struts2的获取请求方法
- Centos网络配置(手动设置和自动获取)IP的2种方法
- 通过request获取请求路径的不同方法的区别
- Ajax请求获取的List在前台遍历的方法
- NodeJs获取请求参数的方法(get方式)
- Spring MVC 的请求参数获取的几种方法
- 在Servlet中使用getParameter()方法获取get请求中的中文参数乱码解决方法
- php curl请求http和https
- 使用ProceedingJoinPoint获取当前请求的方法等参数——spring mvc拦截器