首頁 >後端開發 >php教程 >如何解決 PHP 中的「SSL3_GET_SERVER_CERTIFICATE:憑證驗證失敗」錯誤?

如何解決 PHP 中的「SSL3_GET_SERVER_CERTIFICATE:憑證驗證失敗」錯誤?

DDD
DDD原創
2025-01-01 04:38:09991瀏覽

How to Resolve the

解决 HTTPS 请求的“SSL3_GET_SERVER_CERTIFICATE:证书验证失败”错误

在 Web 开发领域,利用 HTTPS 进行安全通信至关重要。然而,HTTPS 请求过程中偶尔可能会出现错误,例如臭名昭​​著的“SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA 正常。”

解决错误

当此情况发生时发生错误,通常表示预期的服务器证书与服务器提供的证书之间存在差异。尽管 CA(证书颁发机构)被视为有效,但证书验证问题仍然存在。

通过 PHP 配置解决

对于 PHP 应用程序,此错误的简单解决方案在于在 php.ini 中配置curl.cainfo 设置。此设置指定包含受信任根证书的文件的路径。默认情况下,PHP 使用自己的捆绑证书,该证书可能不会定期更新。

要解决该错误:

  1. 从 https://curl 下载 ca-certificates 捆绑包。 se/ca/cacert.pem.
  2. 将下载的文件保存到所需位置,例如, /path/to/cacert.pem.
  3. 打开 /etc/php.ini,找到 [curl] 部分,然后添加以下行:
curl.cainfo = /path/to/cacert.pem
  1. 保存并重启PHP FPM服务。

个人请求调整

如果 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn