关于CURLOPT_SSL_VERIFYPEER的最新建议是什么?

时间:2019-05-26 18:21:03

标签: php curl

关于CURLOPT_SSL_VERIFYPEER的当前建议是什么?传统上,我总是将其设置为false,因为在获取https:// URL时,它始终会引起问题。

但是现在我读到一条评论,说这允许“中间人”攻击(我已经隐约知道),并且我应该下载https://curl.haxx.se/docs/caextract.html文件并设置curl.cainfo config伪指令。而且只能在php.ini文件中进行设置,这会使一切变得一团糟。我想在我的实际应用程序中进行设置。最好不必全部设置,但我仍然不明白为什么首先需要这样做...

我该怎么办?我不要MITM攻击。为什么PHP没有随附适当的此类文件?有什么问题吗?

1 个答案:

答案 0 :(得分:2)

https://paragonie.com/blog/2017/10/certainty-automated-cacert-pem-management-for-php-software#verify-peer的好答案

  

如果禁用CURLOPT_SSL_VERIFYPEER会发生什么?如果禁用   这张支票,就是您选择退出证书颁发机构   基础设施,这意味着您已选择盲目接受   自签名证书。

     

这使您容易受到中间人的极端攻击。所有   拦截代理需要做的是提供一个自签名证书   并且PHP只会信任它,但前提是您将其关闭。

     

在当今的生态系统中,使用此功能的唯一真正原因是   使用CURLOPT_PINNEDPUBLICKEY,由于某种原因无法使用   LetsEncrypt。

您应该继续使用它,并确保您正在卷曲的任何站点都具有来自受信任CA的良好证书(例如,来自LetsEncrypt的付费证书或免费证书)

可以在应用程序级别上设置哪些证书有效和受信任的最新文件。上面的链接中有更多详细信息,并且有一个开源项目由帖子的同一作者进行:https://github.com/paragonie/certainty

您可以根据需要使用它,也可以仅查看它的功能并自己构建。