如何解决“SSL证书问题:无法获取本地颁发者证书”错误

更新时间:2025-11-20 来源:TopSSL 作者:TopSSL

当请求访问安全的 HTTPS 目标时,有时会出现“SSL 证书问题:无法获取本地颁发者证书”的错误信息。此 SSL 错误是由根证书问题引起的。当您使用客户端 SSL 并请求访问安全的 HTTPS 源时,需要通过共享 SSL/TLS 证书来验证您的身份。如果此步骤未成功完成,则会弹出此错误信息。 解决SSL证书问题有多种方法: 在保持 SSL 连接的情况下修改 php.ini 文件。 保持 SSL 连接并添加以下代码:见详细文章

您在执行针对安全 HTTPS 目标的 cURL 请求时是否收到过“ SSL 证书问题:无法获取本地颁发者证书”“unable to get local issuer certificate”的错误消息?如果是,那么不必担心,虽然这种情况并不常见,但有时确实会发生。

首先,我们来看看导致此错误的主要原因是什么,稍后我们将探讨如何解决它。

出现此错误的主要原因是,当您使用客户端 SSL 并尝试向受保护的 HTTPS 源发出请求时,您需要共享SSL/TLS 证书以验证您的身份。此时,如果根证书出现故障,则可能导致此错误。

要解决SSL 证书问题:无法获取本地颁发者证书”,有三种不同的解决方案,其中一种肯定对大多数人有效。

对于 .PEM 格式:(无法获取本地颁发者证书的錯誤)

编辑 php.ini 文件(保留 SSL)

  1. 从https://curl.haxx.se/ca/cacert.pem下载cacert.pem[](https://curl.haxx.se/ca/cacert.pem?utm_source=AboutSSL&utm_medium=Affiliate&utm_content=/fix-ssl-certificate-problem-unable-to-get-local-issuer-certificate/)
  2. 现在,将 cacert.pem 复制到你的 zend/openssl 版本中。例如,‘/usr/local/openssl0.9.8/certs/cacert.pem’.
  3. 打开php.ini文件,并在****CURL 配置中添加以下内容进行修改:"cainfo = ‘/usr/local/openssl-0.9.8/certs/cacert.pem"
  4. 重启PHP 服务,看看CURL是否能够读取HTTPS URL

无需编辑php.ini文件:

在保持 SSL 连接的情况下,添加以下代码。

$ch = curl_init();
$certificate_location = '/usr/local/openssl-0.9.8/certs/cacert.pem';
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $certificate_location);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $certificate_location);

禁用 SSL(不建议这样做)

请输入以下代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

以上三种方法中,必有一种能够解决问题,即“SSL 证书问题:无法获取本地颁发者证书”。

对于 .CRT 格式:(无法获取本地颁发者证书的錯誤)

获取 SSL 证书包 – ca-bundle.crt

要获取 SSL 证书包,请访问以下 URL,复制其内容并保存到您的服务器上。保存位置并不重要,但建议将其保存在服务器根目录附近。

https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt

例如:C:/xampp/htdocs/_certs/ca-bundle.crt

编辑 php.ini 文件

要找到 php.ini 文件,您需要编辑该文件。例如,在 XAMPP 中,您可以通过 XAMPP 控制面板中的“配置”按钮访问 php.ini 文件;而其他服务器的 php.ini 文件可能位于其他位置,但通常位于 /etc 目录中。

找到该文件后,请将以下代码添加到该文件中或进行更新:

[CA证书]
curl.cainfo="C:/xampp/htdocs/_certs/ca-bundle.crt"
openssl.cafile="C:/xampp/htdocs/_certs/ca-bundle.crt"

**注意:**路径必须与文件保存位置一致。

重启 PHP

完成上述步骤后,请重启 PHP。不过,不同服务器触发 PHP 重启的方式可能有所不同。例如,在 XAMPP 中,先关闭 Apache,然后通过 XAMPP 控制面板重新启用。如果您使用的是 Linux 服务器,则可以尝试以下命令。

"service php5-fpm restart"


其他错误解决办法:

Firefox中出现SSL_ERROR_NO_CYPHER_OVERLAP错误怎么办?

如何修复ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误

部分浏览器提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH解决办法

如何修复 Google Chrome 上的“ERR_SSL_PROTOCOL_ERROR”

正确修复"ssl_error_bad_cert_domain"证书错误

SSL_ERROR_SYSCALL”错误的解决方法

标签

有用
分享
无用
反馈
返回顶部
0 个回答
85 次浏览
立即加入,帮您快速选购适合您的SSL数字证书 申请SSL证书
免费SSL证书 - 专业SSL证书申请 - HTTPS加密【TopSSL】
免费SSL证书永久生成
微信公众号二维码 扫一扫在线咨询
关注 TopSSL 公众号, RSS订阅 SSL资讯与技术支持

2004-2025 © 北京传诚信  版权所有 | TopSSL提供免费SSL证书SSL证书申请轻松实现HTTPS加密  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn