CURLOPT_SSL_VERIFYPEER の無効化
PHP の CURL ライブラリには、HTTPS リクエスト中に SSL 証明書を検証するオプションが用意されています。ただし、一部のユーザーは、CURLOPT_SSL_VERIFYPEER を使用した検証を無効にしても効果がないと思われる問題に遭遇する可能性があります。この問題は、CURL ライブラリをアップグレードした後に発生します。
トラブルシューティングと解決策
この問題を解決するには、次の対策を検討してください。
-
証明書パスの検証: CA 証明書に指定されたパス (CURLOPT_CAINFO および CURLOPT_CAPATH を使用) が正しく、サーバーからアクセスできることを確認します。
-
CURLOPT_SSL_VERIFYHOST を 0 に設定します: このオプションは、 SSL ピア証明書に共通名が存在する。 0 に設定すると、ホスト検証が無効になります。
-
ライブラリ更新後に Apache を再起動します: CURL ライブラリを更新した後、Apache サーバーを再起動して、変更が有効であることを確認します。
-
php.ini で CURLOPT_SSL_VERIFYPEER を無効にする: システム全体の検証を無効にするには、php.ini ファイルにcurl.cainfo=/path/to/certificate.pem を追加します。
-
セッション: 検証を無効にするには、特定の CURL セッションの CURLOPT_SSL_VERIFYPEER を 0 に設定します。
追加の考慮事項
- SSL 検証を無効にすると、セキュリティが危険にさらされます。このオプションは、絶対に必要な場合にのみ使用してください。
- サーバー証明書が無効または信頼できない場合、検証するとエラーが発生する可能性があります。
- CURLOPT_CAPATH を使用すると、複数の CA 証明書を含むディレクトリを指定できます。
次の手順に従うと、SSL 証明書エラーが発生することなく CURLOPT_SSL_VERIFYPEER を無効にし、HTTPS リクエストを実行できるようになります。
以上がCURL ライブラリをアップグレードした後に CURLOPT_SSL_VERIFYPEER を無効にしても効果がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。