一. 起因:

今天用yii框架,请求java接口,始终返回false.

二. 分析历程:

使用curl_error()方法打印出Peer’s Certificate issuer is not recognized。

翻译出来的意思是ssl证书未认证通过,证书问题?不细揪,通过结果判断,就是证书的问题。

不过毕竟是第三方的接口,要解决需要联系运维,查看证书,还要重新设置证书路径,很麻烦,不好处理。

附上要设置的(未验证),供参考

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');

三. 解决办法

关掉curl对于证书的验证。不过curl类的封装是统一的,为了不影响其他的代码。

php curl关掉ssl验证:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//原生

$curl->setOption(CURLOPT_SSL_VERIFYPEER=>0);//YII2

在此过程中还遇到了,对方接口不识别返回的json数据

解决办法,设置header

$curl->setHeaders(['Content-Type' => 'application/json']);

结果,再次测试,接口通了。

最新文章

  1. OpenCV学习笔记(一)——OpenCV安装
  2. css选择器中:first-child与:first-of-type的区别
  3. SQL初级
  4. background-clip
  5. non-manifold Mesh(非流形网格)
  6. ECSHOP在线手册布局参考图--积分商城 exchange_list.dwt
  7. 多线程归并排序(摘自githhub)
  8. Servlet3.0新特性使用详解
  9. 通过VBA,当在EXCEL单元格中输入任意的日期格式时,都能自动转换为指定的标准格式的日期值
  10. 【HTML初识】
  11. VueI18n插件的简单应用于国际化
  12. JS中const、var 和let的区别
  13. NOIWC2018游记
  14. Hype-v 共享文件办法
  15. 初识服务器和Linux
  16. 防止enter提交表单
  17. 最近对latin-1这个字符集产生了不少好感
  18. .NET拾忆:FileSystemWatcher 文件监控
  19. webGL之three.js入门4--ThreeJS Editor入门篇
  20. 【SVN】SVN的trunk、branches、tag的使用以及分支的概念

热门文章

  1. linux redis 安装和密码设置
  2. 收藏单词TOEFL备份托福英语
  3. [Atcoder AGC030C]Coloring Torus
  4. 三伏天里小试牛刀andriod 开发 #华为云·寻找黑马程序员#【华为云技术分享】
  5. Flink WorkCount代码
  6. Ambari深入学习(II)-实现细节
  7. docker容器的使用整理
  8. python Mock 示例
  9. 用 node.js 模仿 Apache 的部分功能
  10. react学习记录(一)