在 Web 开发领域,利用 HTTPS 进行安全通信至关重要。然而,HTTPS 请求过程中偶尔可能会出现错误,例如臭名昭著的“SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA 正常。”
解决错误
当此情况发生时发生错误,通常表示预期的服务器证书与服务器提供的证书之间存在差异。尽管 CA(证书颁发机构)被视为有效,但证书验证问题仍然存在。
通过 PHP 配置解决
对于 PHP 应用程序,此错误的简单解决方案在于在 php.ini 中配置curl.cainfo 设置。此设置指定包含受信任根证书的文件的路径。默认情况下,PHP 使用自己的捆绑证书,该证书可能不会定期更新。
要解决该错误:
curl.cainfo = /path/to/cacert.pem
个人请求调整
如果 PHP 配置调整不可行,可以通过设置 CURLOPT_CAINFO 选项将特定的 cURL 请求配置为使用自定义 CA 证书:
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cacert.pem');
其他注意事项
确保 HTTPS 端点提供的服务器证书有效且已签名由受信任的 CA 提供。如果问题仍然存在,请考虑检查防火墙设置或验证服务器端证书。
结论
按照以下步骤,您可以有效解决“SSL3_GET_SERVER_CERTIFICATE:证书验证”问题failed, CA is OK”错误并确保您的 PHP 应用程序中 HTTPS 通信顺利。
以上是如何解決 PHP 中的「SSL3_GET_SERVER_CERTIFICATE:憑證驗證失敗」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!