私はcurlを使用してhttpsを介してrightmove APIにxmlファイルを送信しています。彼らは私にすべての証明書を提供しました。PHP CURLを使用したSSL証明書
私はエラーを取得しています:
60SSL証明書の問題:ローカル発行者 certificateResultを取得することができません=
私は類似した他のすべてのStackOverflowのポストに発見したと、何もありませんすべてを試してみました古いcacert.pemをダウンロードしようとしましたが、php.iniのファイルを変更して個人情報ファイルをインストールし、ブラウザとローカルマシンに証明書を作成しましたが、何もエラー60を取り除いていません。
これは私のPHPです:
<?php
$xml = file_get_contents("myxml.xml");
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__).'\mypem.pem');
curl_setopt($ch, CURLOPT_URL, "https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_REFERER, 'https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE , 1);
$ch_result = curl_exec($ch);
print curl_errno($ch);
print curl_error($ch);
echo "Result = ".$ch_result;
curl_close($ch);
?>
が、これは私が日のために私の頭を叩いてきた、私はどのような援助のために非常に感謝されます。
curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、false)を設定してみてください。 curl_setopt($ ch、CURLOPT_SSL_VERIFYHOST、2)を削除します。 – Indrajit
@Indrajitありがとうございます。しかし、APIには認証が必要です –
おそらくあなたのブラウザで同じエラーが発生しているとは限りません。パッチを当てていないか、ご使用のプラットフォーム用に正しく構成されていないバージョンのPHPがインストールされています。 – symcbean