我将稍微解释一下我的脚本,以便您可以理解我的问题。
基本上我做了一个脚本来检查SOCKS5是live还是dead。
live
dead
当我在上面测试我的脚本时Linux VPS,iMac它运行良好,但是当我在Windows上wampserver对其进行测试时,直到我将以下行添加到cURL:
Linux VPS
iMac
wampserver
cURL
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
谁能向我解释为什么我在Windows中需要此行,而在Linux服务器上却不需要?
SSL证书上的此cURL手册页介绍了连接到SSL / TLS受保护主机时 证书验证 的过程。
你需要来设置的原因CURLOPT_SSL_VERIFYPEER,以false在Windows上是因为CA捆绑使用它来验证证书丢失(或有被编译成卷曲,所以你需要明确定义它没有默认路径)。
CURLOPT_SSL_VERIFYPEER
false
您可以php.ini使用curl.cainfo指令配置它,或者在运行时使用以下命令指定它:
php.ini
curl_setopt($curl, CURLOPT_CAFILE, 'C:/path/to/ca-bundle.crt');
如果您没有副本,请在这里获取最近的副本。
尽管禁用对等验证是一种解决方法,但这可能是不安全的,因为您正在禁用非常检查,以确保与您认为的网站安全地通信。
任何人都可以生成自签名证书来模拟域,但是如果无法验证证书,则浏览器或客户端(例如cURL)将失败,除非您忽略或绕过此检查(即CURLOPT_SSL_VERIFYPEER = false)。