需要一些帮助来理解普遍存在的 cURL 58 错误,在这种情况下,这是由于包含带有 cURL 请求的 PEM 文件。
Error 58: unable to set private key file
我的代码可以成功打开 .pem 文件(请参阅 fopen() 调用),但 cURL 抱怨它无法设置私钥文件。试图更好地了解这是客户端(我)上的东西还是从主机返回的东西。很确定它在我的尽头,但不确定是什么。
谢谢
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->apiURL);
$fh = fopen($this->certPath,'a+');
if($fh){
echo "File opened!";
fclose($fh);
} else {
echo "File not opened";
}
curl_setopt($ch, CURLOPT_SSLCERT, $this->certPath);
curl_setopt($ch, CURLOPT_POSTFIELDS, trim($SOAPrequest));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (curl_error($ch)) {
printf("Error %s: %s", curl_errno($ch), curl_error($ch));
}
curl_close ($ch);
return $result;
}
钥匙:
-----BEGIN CERTIFICATE-----
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
[...]
-----END CERTIFICATE-----