尝试使用 cURL 向需要 SSL 的 URL 发送请求时,出现一条错误消息,指示“自签名”可能会遇到证书链中的证书。
出现此错误是因为 cURL 无法验证远程服务器提供的 SSL 证书。如果证书是自签名的,即不是由受信任的证书颁发机构 (CA) 颁发的,则可能会发生这种情况。
要解决此问题,您可以手动禁用 cURL 的 SSL 证书验证。但是,不建议这样做,因为它可能会危及应用程序的安全性。
相反,您应该确保 cURL 使用的 PHP 安装具有有效的 CA 根证书包。 cURL 使用此捆绑包来验证服务器 SSL 证书的真实性。
您可以从此处下载最新的 CA 根证书捆绑包:http://curl.haxx.se/docs/ caextract.html
下载后,通过将 php.ini 中的curl.cainfo 选项设置为证书的绝对路径来配置 PHP 使用该包
curl.cainfo = <absolute_path_to>/cacert.pem
或者,您可以使用 CURLOPT_CAINFO 选项在运行时配置 CA 证书:
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
通过提供有效的 CA 根证书包,cURL 将能够验证服务器的 SSL 证书并建立安全连接。
以上是如何修复 cURL 错误 60:SSL 证书问题?的详细内容。更多信息请关注PHP中文网其他相关文章!