我需要打开由私人公司的证书颁发机构签名的远程资源。目前,PHP 不会打开资源,因为它不信任证书签名者。
我知道您可以使用流上下文对象执行证书,但我正在寻找一种方法来为 PHP 提供新证书颁发机构的公钥并拥有file()
和类似的方法信任由该机构签名的远程证书无需每次都创建流上下文.
有没有办法向 php.ini 添加新的证书颁发机构?我尝试将 CA 的公钥添加到/etc/ssl/certs/
,但似乎没有被识别。
Curl 使用包含所有 CA 的单个文件。要将新的 CA 添加到 Curl/PHP,您需要获取完整的捆绑包,将您的证书添加到捆绑包中,然后告诉 PHP 使用自定义捆绑包。
- 从 CURL 下载最新的包并将其保存到
/etc/ssl/certs/cacert.pem
:
curl --remote-name --time-cond cacert.pem https://curl.haxx.se/ca/cacert.pem
编辑/etc/ssl/certs/cacert.pem
文件,并将新的 CA 公钥添加到底部。
Edit php.ini
并添加行openssl.cafile=/etc/ssl/certs/cacert.pem
到顶部(或底部)。
重新启动网络服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)