ホームページ  >  記事  >  バックエンド開発  >  検証を無効にしているにもかかわらず、PHP CURL で発生する「SSL CA 証明書の問題」エラーを解決する方法

検証を無効にしているにもかかわらず、PHP CURL で発生する「SSL CA 証明書の問題」エラーを解決する方法

DDD
DDDオリジナル
2024-10-20 07:20:021050ブラウズ

How to Resolve

PHP CURL で無視される CURLOPT_SSL_VERIFYPEER のトラブルシューティング

問題:

ユーザーが次の問題に遭遇しています。 CURL を使用した HTTPS リクエストでは、CURLOPT_SSL_VERIFYPEER と CURLOPT_SSL_VERIFYHOST の両方を false に設定しているにもかかわらず、「SSL CA 証明書の問題」エラーが発生します。

原因と解決策:

正常に検証するにはCURL を使用してホストまたはピア証明書を使用する場合は、CURLOPT_CAINFO で代替証明書を指定するか、CURLOPT_CAPATH で証明書ディレクトリを指定する必要があります。

追加:

  • CURLOPT_SSL_VERIFYHOST:

    • SSL ピア証明書内の共通名の存在を確認するには 1 に設定します。
    • 共通名の存在を確認し、指定されたホスト名と照合するには 2 に設定します。

推奨コード:

ホストとピアの検証を無効にするには:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

検証を有効にして CA 証明書を指定するにはファイル:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");

追加メモ:

  • CA 証明書ファイルが有効であり、サーバーからアクセスできることを確認してください。
  • php.ini のcurl.cainfo 設定を使用して CA 証明書ファイルを指定することもできます。
  • 認証局をリセットするには、/etc/pki/nssdb の名前を /etc/pki/nssdb.old に変更します。

更新:

ライブラリを更新してシステムを再起動すると、問題が自動的に解決される可能性があります。

以上が検証を無効にしているにもかかわらず、PHP CURL で発生する「SSL CA 証明書の問題」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。