どういうわけか私はHTTPSでCURLを使うことができません。私がcurlライブラリのアップグレードを実行するまで、すべてがうまくいっていました。 CURL要求を実行しようとしたときに、この応答が発生しました。SSL CA証明書(パス?アクセス権?)の問題
私が以下をしようとした関連問題に関してここに掲示された以下の提案は:
ホストとピアの検証を無効にする
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
CURLOPT_SSL_VERIFYPEER
を有効にして、 http://curl.haxx.se/docs/caextract.html からダウンロードしたcacert.pemを指定します。
curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
私が接続しようとしているサーバーのバンドルCA証明書として提供されたpositiveSSL.ca-bundleでも同じことをやろうとしました。
curl.cainfo=cacert.pem
(同じディレクトリにあり、Apacheからアクセス可能なファイル)でphp ini設定を編集します。
/etc/pki/nssdb
を/etc/pki/nssdb.old
に名前変更します
残念ながら上記のどれもが私の問題を解決することができないし、私は絶えずSSL CA証明書(パス?アクセス権?)の問題に関するメッセージを受け取ります。
そもそも私はこの検証を必要としません(私はセキュリティ問題を知っています)。
他に何か提案がありますか?
UPDATE
最新のライブラリにアップデートしてボックス全体を再起動した後、私が行っていたApacheだけでなく、すべてが再び機能しているようです。
ドキュメントによれば、ホスト証明書またはピア証明書を検証するには、CURLOPT_CAINFO
オプションで代替証明書を指定する必要があります。または、CURLOPT_CAPATH
オプションで証明書ディレクトリを指定することができます。
CURLOPT_SSL_VERIFYHOST:
も見てください
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
CentOS7のマシンでも同じ問題がありました。 VERIFYHOST
VERIFYPEER
を無効にしても問題は解決されず、cURLエラーは発生しませんでしたが、応答はまだ無効でした。 cURLと同じリンクに対してwget
を実行した場合も、証明書エラーが発生しました。
- >私達の解決策はまたVPSを再起動することでした、これはそれを解決し、私達は再度要求を完了することができました。
私たちにとってこれはメモリ破損の問題のようです。 VPSを再起動すると、ライブラリにライブラリが再度読み込まれ、動作します。 @clover
による上記の解決策がうまくいかない場合は、マシンを再起動してください。