今日、同僚が、curl を使用して https リクエストを開始すると、エラーが報告されたと報告しました:「SSL 証明書に問題があります。CA 証明書が OK であることを確認してください。詳細: エラー」 :14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました」
明らかに、証明書の検証時に問題が発生しました。
curl を使用して通常の https リクエストを開始する場合は、2 つの方法があります:
方法1: 証明書とホストを検証しないように設定します。
curl_exec()を実行する前。オプションを設定します
コードをコピーします コードは次のとおりです:
$ch =curl_init();
......
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
方法 2: 正しい証明書を設定します。
ローカル SSL 証明書が古すぎるため、リンクで間違った SSL 証明書が報告されます。
新しいSSLローカル識別ファイルをダウンロードする必要があります
http://curl.haxx.se/ca/cacert.pem
プログラムファイルディレクトリに配置します
curl 次の設定を追加します
コードをコピーします コードは次のとおりです:
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true);
curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');
完了
興味があれば、外国の偉大な神の記事を読むことができます。 http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/ 」