Apacheサーバーに、パートナーのサーバーにカール要求を送信する必要のあるPHPスクリプトがあります。 パートナーは私にapiに行うすべての呼び出しに添付する.pemファイルを与えてください。PHP経由でPEM証明付きカールリクエストを送信するには?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLCERT, "test.pem");
curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);
curl_setopt($ch, CURLOPT_POST, True);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
if(!$result)
{
echo "Curl Error: " . curl_error($ch);
}
else
{
echo "Success: ". $result;
}
curl_close($ch);
それが返されます:
Curl Error: unable to set private key file: 'test.pem' type PEM
が、それは私の.pemファイルを送信し、私が思う
こんにちはジェームズを持って、どうもありがとうございました!!! 0906D06C:PEMルーチン:PEM_read_bio:開始行なし、キーが見つからない、パスフレーズが間違っている、ファイル形式が間違っていますか?) "あなたはそれが何を意味するか知っていますか? –
問題はあなたのpemファイルである可能性があります。あなたはWindows環境にいますか?この[クエリ](http://stackoverflow.com/questions/20837161/openssl-pem-routinespem-read-biono-start-linepem-lib-c703expecting-truste)が役立つかどうかを確認してください。あなたのファイルが '----- BEGIN PUBLIC KEY -----'で始まっていることを確認してください。 – James
ありがとう非常にジェームス! –