当请求访问安全的 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 证书问题:无法获取本地颁发者证书”,有三种不同的解决方案,其中一种肯定对大多数人有效。
‘/usr/local/openssl0.9.8/certs/cacert.pem’."cainfo = ‘/usr/local/openssl-0.9.8/certs/cacert.pem"在保持 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);
请输入以下代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
以上三种方法中,必有一种能够解决问题,即“SSL 证书问题:无法获取本地颁发者证书”。
要获取 SSL 证书包,请访问以下 URL,复制其内容并保存到您的服务器上。保存位置并不重要,但建议将其保存在服务器根目录附近。
https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
例如:C:/xampp/htdocs/_certs/ca-bundle.crt
要找到 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 重启的方式可能有所不同。例如,在 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”
加密您的网站,赢得客户信任!