如何解决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/