gpt4 book ai didi

php - 使用 PHP cURL 固定证书

转载 作者:可可西里 更新时间:2023-10-31 23:45:49 25 4
gpt4 key购买 nike

我看到 SO 中有大量关于错误的帖子:

SSL certificate problem: unable to get local issuer certificate

这就是我得到的。

他们所有的回答都只是说从以下位置下载根证书:

https://curl.haxx.se/ca/cacert.pem

并设置到 CURLOPT_CAINFO 或设置 php.ini 的 curl.cainfo。

但这实际上只是告诉 cURL 信任根 CA 列表及其受信任的 CA。

根据我的理解,证书固定应该忽略所有这些根 CA,只信任特定提供商的单个证书。

修复此错误的正确方法是什么?

    $ch =  curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, '/etc/httpd/static.gc.apple.com.pem');
curl_setopt($ch, CURLOPT_CAPATH, '/etc/httpd/');

//curl_setopt($ch, CURLOPT_PINNEDPUBLICKEY, "sha256//TeyzGG/8dvpuksAeSCb3tsvLEHbY6w9q63tXhOIf0Tg=");
$sslCertificate = curl_exec($ch);

我知道 libcurl 本身,它有一个选项“CURLOPT_PINNEDPUBLICKEY”,它绝对可以满足我的需要,但目前 PHP 仍然不支持它......(它在 PHP 中没有这样的常量,我不知道是什么常数的实际值)

最佳答案

问题基本上是因为用 Remi 的 yum 安装的 PHP 本身没有用支持它的 curl 和 openssl 编译。所以我们必须更新 curl、openssl,从源代码编译 PHP 并且它起作用了。

关于php - 使用 PHP cURL 固定证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com