PHP CURL CURLOPT_SSL_VERIFYPEER ignored

2019-07-20 17:33发布

出于某种原因,我无法使用卷曲使用HTTPS。 一切工作正常,直到我跑了升级卷曲库。 现在我想,当执行卷曲请求遇到这样的响应:(?路径的访问权限)问题与SSL CA证书

在此之后公布在相关问题的建议,我试图做到以下几点:

  • 禁用验证主机和同行

     curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); 
  • 启用CURLOPT_SSL_VERIFYPEER和指向cacert.pem从下载http://curl.haxx.se/docs/caextract.html

     curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle"); 
  • 我也试着做这是作为我试图连接到服务器捆绑CA证书提供positiveSSL.ca束同样的事情。

  • 编辑PHP INI设置与curl.cainfo=cacert.pem (文件在同一目录下,并通过阿帕奇访问)

  • 重命名/etc/pki/nssdb/etc/pki/nssdb.old

可惜的是以上都不是能够解决我的问题,我不断地获得与SSL CA证书(路径?访问权限?)消息的问题。

而且我也不需要这个验证摆在首位(我知道的安全问题)。

没有任何人有任何其他建议?

UPDATE

更新到最新的库和整个盒子的重新启动后,不只是Apache是​​哪个,我做这一切似乎是现在再次合作!

Answer 1:

根据文档:验证需要与指定备用证书主机或对等证书CURLOPT_CAINFO选项或证书目录可以与指定CURLOPT_CAPATH选项。

另外,也要看看CURLOPT_SSL_VERIFYHOST:

  • 1,检查一个共同的名字存在的SSL等证书中。
  • 2,检查一个共同的名字的存在,也验证了它提供的主机名匹配。

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);


Answer 2:

我们有一个CentOS7机器上同样的问题。 禁用VERIFYHOST VERIFYPEER没有解决的问题,我们没有卷曲的错误了,但反应仍然是无效的。 做一个wget同一链路的卷曲在做也导致证书错误。

- >我们的解决方案也为重新启动VPS,这解决了它,我们能够再次完成请求。

对我们来说,这似乎是一个内存损坏问题。 重启VPS再次重新加载在内存中的libary,现在它的工作原理。 所以,如果从上述溶液@clover不起作用尝试重新启动计算机。



文章来源: PHP CURL CURLOPT_SSL_VERIFYPEER ignored
标签: php ssl curl https