使用 cURL 解决 SSL/TLS 握手问题
遇到臭名昭著的 cURL 错误 35,“SSL/TLS 握手中某处出现问题,”可能会令人沮丧。此错误消息表示即使 cURL 与 HTTP 协议完美配合,在 HTTPS 请求期间建立安全连接也存在困难。
尝试的一种常见解决方案是将 CURLOPT_SSL_VERIFYPEER 设置为 false,但这被证明是无效的。然而,解决这个问题的关键在于为 cURL 提供必要的证书颁发机构信息。
与现代浏览器不同,cURL 不具备内置根证书。要验证 SSL 连接期间收到的证书,需要 cacerts.pem 文件的显式路径。此文件包含允许 cURL 信任服务器证书的根证书。
要正确配置 cURL,请按照以下步骤操作:
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem');
通过提供此文件,cURL 将能够验证服务器的证书并建立安全的 HTTPS 连接。 cacerts.pem 文件可以从 cURL 官方文档网站获取。
请记住,此文件可用于所有后续通过 cURL 建立的 SSL 连接,从而简化设置过程。
以上是如何修复 cURL 错误 35:“SSL/TLS 握手中出现问题”?的详细内容。更多信息请关注PHP中文网其他相关文章!