为什么我们在Windows中需要CURLOPT_SSL_VERIFYPEER

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

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

当我在上面测试我的脚本时Linux

VPSiMac它运行良好,但是当我在Windowswampserver对其进行测试时,直到我将以下行添加到cURL

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

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

回答:

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)。

以上是 为什么我们在Windows中需要CURLOPT_SSL_VERIFYPEER 的全部内容, 来源链接: utcz.com/qa/424229.html

回到顶部