错误:使用 cURL“SSL/TLS 握手中的某处出现问题”
在 cURL 领域,用户可能会遇到神秘的错误消息:“SSL/TLS 握手中的某处出现问题。”当 cURL 在通过 HTTPS 建立安全连接时遇到困难时,就会出现这个令人困惑的问题。
问题
所提供的上下文揭示了开发人员的困境,cURL 可以完美地处理 HTTP 请求,但会出现问题当遇到 HTTPS 时,即使使用不同的协议定位相同的资源。 cURL 的错误响应(代码 35)指向 SSL/TLS 握手中的问题。
尝试失败
开发人员精心探索了潜在的解决方案,包括禁用 SSL 证书验证(CURLOPT_SSL_VERIFYPEER) 并尝试下载和配置证书颁发机构 (CA) 证书 (CURLOPT_CAINFO)。然而,这些努力被证明是徒劳的。
解决方案
经过深入研究这个问题,我们的专家发现 cURL 缺乏内置根证书。要纠正此问题,开发人员必须明确将 cURL 定向到受信任的 CA 证书文件 (cacert.pem)。通过使用 CURLOPT_CAINFO 指定该文件的路径,cURL 可以验证远程服务器提供的 SSL 证书的真实性。
可以从信誉良好的来源获取 cacert.pem 文件,例如官方 cURL 文档(http://curl.haxx.se/docs/caextract.html)。通过合并此证书,cURL 可以建立安全连接并检索请求的 HTTPS 资源。
以上是使用 HTTPS 时,为什么 cURL 会抛出'SSL/TLS 握手中某处出现问题”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!