php - SSL 证书无法获取本地颁发者证书 php 后台脚本

标签 php ssl

如何解决php后台脚本的证书问题?如果我直接在浏览器中加载该脚本,该脚本可以正常工作,但从 system 调用它时,该脚本无法正常工作,如下所示:

system ("php somescript.php");

它在控制台中返回 fatal error :

Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate

我在这里错过了什么?

最佳答案

这是一个措辞相当无用的错误,当 Openssl 库无法或不知道如何访问系统上的 CA 证书时,或者当它遇到其证书未由它信任的 CA。
Openssl 通常使用默认 CA 目录和/或路径编译,并带有选项 --configure-ca-path 和 --configure-ca-bundle。
检查您的安装是否属于这种情况(很可能是),并且 CA 目录确实存在并且可以由您的脚本读取。 如果您的脚本提供自己的 CA 包作为默认包的替代品,还要检查路径是否正确。
最后,一切都可以正确设置,在这种情况下远程证书的 CA 不受 Openssl 信任(因为它不在受信任的 CA 列表中)。在这种情况下,您只需处理异常或解决信任问题,方法是在本地通过将远程的 CA 添加到 bundle 中或通过将证书更改为受信任的证书来远程进行。

关于php - SSL 证书无法获取本地颁发者证书 php 后台脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574487/

相关文章:

javascript - 如何将 javascript 变量传递给 javascript 函数内的 php 变量

php - 网站访问控制实际上是如何工作的?

ssl - 尝试使用客户端证书时解决 sslv3 警报握手失败

javascript - 如何让DataTable绘制新的结果?

php - CSS 仅在短暂但明显的延迟后生效

java - 为基于 netty 的 EPPServer 添加 SSL 支持时,客户端 socket.startHandshake() 失败。

java - 如何在没有证书身份验证或主机名验证的情况下使用 Java 中的 HttpClient 发出 HTTPS 请求?

java - 如何在不修改java.security文件的情况下在Java 8中启用SSLv3?

python - 在 nginx 上为 django 项目设置 ssl

javascript - 动态添加发布数据以便稍后通过表单提交