2

この場合、cURL 要求に PEM ファイルが含まれていることが原因である、どこにでもある cURL 58 エラーを理解するための助けが必要です。

 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-----
4

1 に答える 1

2

ファイルには秘密鍵が含まれておらず、公開鍵のみが含まれています。
おそらく CURLOPT_SSLCERT を使用する理由はまったくないと思います。

于 2013-04-17T12:07:03.923 に答える