gpt4 book ai didi

php - 使用 CURLOPT_SSLCERT 在 https 服务器上 curl 身份验证错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:29 25 4
gpt4 key购买 nike

我很感激这个问题已经被问了很多次,但是在查看了答案之后我仍然收到以下错误:

Curl 错误:无法使用已知的 CA 证书对对等证书进行身份验证

我有下面的代码,它适用于网站的非 https 版本(不同的服务器),但是,它不适用于运行 https 的实时网站。我的假设是它试图根据站点上的 SSL 证书进行验证,而不是 $cert_path 中指定的 .pem 文件。

老实说,我对 SSLCERTCAINFO 有点困惑,但是我已经将以下内容添加到我的 php.ini 文件中并进行了检查确保它们设置正确,确实如此。

// php.ini
curl.cainfo = "/path/to/.pem";
openssl.cafile = "/path/to/.pem";

正如我之前所说,以下作品适用于网站的舞台版本,而不是现场版本。任何帮助将不胜感激。

// php curl snippet
$cert_path = '/path/to/.pem';

$options = array(
CURLOPT_SSL_VERIFYHOST => true,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSLCERT => $cert_path,
CURLOPT_SSLCERTPASSWD => $password,
CURLOPT_CAINFO => $cert_path,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $xml_post_string,
CURLOPT_HTTPHEADER => $headers
);

curl_setopt_array( $ch, $options );

如果我将 VERIFYPEER 设置为 false,它确实会连接,但我的假设是这不会安全地传递数据?

谢谢。

最佳答案

我已经成功地完成了这项工作,但是有一些事情需要注意,这可能会在将来对某人有所帮助。

  1. 网站由 123reg 托管,他们的支持人员告诉我不接受第三方 SSL 证书。虽然我最终被告知我下面的代码确实有效。
  2. 我重新生成了我的 .pem 文件,所以这也对我有利。

我的最终代码如下:我也把php.ini的代码全部去掉了。

// These two variables will differ depending on your payload for Curl
$xml_post_string = '...';
$headers = array();

// This will differ based on your endpoint
$url = 'endpoint.url';

$password = 'password';
$cert_path = '/path/to/.pem';

$ch = curl_init();

$options = array(
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSLCERT => $cert_path,
CURLOPT_SSLCERTTYPE => "PEM",
CURLOPT_SSLCERTPASSWD => $password,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $xml_post_string,
CURLOPT_HTTPHEADER => $headers
);

curl_setopt_array( $ch, $options );

$response = curl_exec($ch);
curl_close($ch);

关于php - 使用 CURLOPT_SSLCERT 在 https 服务器上 curl 身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43584262/

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