一尘不染

为什么我们在Windows中需要CURLOPT_SSL_VERIFYPEER

linux

我将稍微解释一下我的脚本,以便您可以理解我的问题。

基本上我做了一个脚本来检查SOCKS5是live还是dead

当我在上面测试我的脚本时Linux VPSiMac它运行良好,但是当我在Windows上wampserver对其进行测试时,直到我将以下行添加到cURL

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

谁能向我解释为什么我在Windows中需要此行,而在Linux服务器上却不需要?


阅读 892

收藏
2020-06-07

共1个答案

一尘不染

SSL证书上的此cURL手册页介绍了连接到SSL / TLS受保护主机时
证书验证 的过程。

你需要来设置的原因CURLOPT_SSL_VERIFYPEER,以false在Windows上是因为CA捆绑使用它来验证证书丢失(或有被编译成卷曲,所以你需要明确定义它没有默认路径)。

您可以php.ini使用curl.cainfo指令配置它,或者在运行时使用以下命令指定它:

curl_setopt($curl, CURLOPT_CAFILE, 'C:/path/to/ca-bundle.crt');

如果您没有副本,请在这里获取最近的副本。

尽管禁用对等验证是一种解决方法,但这可能是不安全的,因为您正在禁用非常检查,以确保与您认为的网站安全地通信。

任何人都可以生成自签名证书来模拟域,但是如果无法验证证书,则浏览器或客户端(例如cURL)将失败,除非您忽略或绕过此检查(即CURLOPT_SSL_VERIFYPEER
= false)。

2020-06-07