2

次のコードは終了コード 58 を返します。

cURL ドキュメントから: CURLE_SSL_CERTPROBLEM (58) ローカル クライアント証明書の問題。

// create a new CURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . $CERT);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD,"XXXXX");

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content Type: text/xml',
    'User-Agent: XXXXX',
    'User-Name: XXXXX'
));

$RESPONSE = curl_exec($ch);  

var_dump($RESPONSE);

// close CURL resource, and free up system resources
curl_close($ch);

足りないものはありますか?

4

2 に答える 2

5

ファイルがgetcwd() . $CERT存在し、有効な PEM 証明書であることを確認してください。問題がないと思われる場合は、次のオプションを設定して、SSL 証明書の詳細を STDERR に出力します。

curl_setopt($ch, CURLOPT_CERTINFO, true);

この設定はCURLOPT_VERBOSE、すでにある true に設定されている場合にのみ有効であることに注意してください。

于 2012-05-01T10:44:45.237 に答える
0

ローカル クライアント証明書の問題

うーん、少しあいまいです。リモート システムが証明書を気に入らないというよりは、Curl が証明書を気に入らないことを意味しているようです。PEM形式ですか?証明書の公開鍵と秘密鍵? Web サーバーの uid で読み取り可能?

于 2012-05-01T10:44:41.790 に答える