gpt4 book ai didi

php - 如何解决错误 "could not load PEM client certificate, OpenSSL error:02001003:system library:fopen:No such process"?

转载 作者:可可西里 更新时间:2023-11-01 13:27:21 26 4
gpt4 key购买 nike

如果这个问题很愚蠢,请原谅,但我是这方面的新手。我需要通过 SSL 从 Drupal 7 站点连接到服务。我有一个扩展名为“.p12”的文件和一个密码。另外,我使用 PHP 7.1 1 和 Windows 7 64x。我使用以下命令将 .p12 文件转换为 .pem 文件。

openssl pkcs12 -in myfile.p12 -out myfile.pem 

在我将 Openssl 安装到我的计算机并将路径添加到 Windows 之前。之后,我尝试使用以下代码通过 CURL 函数连接到服务器。

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'my_addr');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSLCERT, 'myfile.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'mypsw');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

if ($result === FALSE){
$curl_error = curl_error($ch);
}
curl_close($ch);

不幸的是,curl_exec 返回 FALSE 而 curl_error 返回以下内容:

could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)

我决定在 Linux 共享主机上的客户端站点上执行此代码,而我的本地主机在 Windows 7 64x 上运行。代码执行时没有任何错误,但 curl_exec 返回一个空字符串。

我想澄清一下,我做错了什么以及为什么 PEM 客户端证书不想加载?我应该在我的本地主机上做什么来解决这个问题?我不能放弃使用 Windows 7 而开始使用 Linux。

最佳答案

对于 SSL 验证,您需要 pem 格式的证书、关联的私钥(openssl 格式)和以 pem 格式签署您的证书的证书颁发机构的根证书。

检查这个完整的示例:

PHP:path of CURLOPT_SSLCERT

如果您没有被告知,错误消息不是很清楚,但它说了:

could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)

问候,

关于php - 如何解决错误 "could not load PEM client certificate, OpenSSL error:02001003:system library:fopen:No such process"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52795052/

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