cURL での HTTPS サイト接続の問題: コンテンツ長ゼロの修正
cURL を使用して HTTPS サイトに接続しようとすると、応答コンテンツの長さがゼロになる問題。この問題は、多くの場合、証明書認証の問題が原因で発生します。この問題を解決するために実行できる手順は次のとおりです。
1. cURL 証明書ファイルの更新:
cURL は、HTTPS 証明書認証に古いファイルを使用しています。最新バージョンは次の場所から入手できます。
http://curl.haxx.se/ca/cacert.pem
サーバー上のディレクトリにファイルを保存します。
2.新しい証明書ファイルを使用するように cURL を構成します:
cURL 構成に次の行を追加します:
curl_setopt ($curl_ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
これは、cURL が認証に新しい証明書ファイルを使用することを指定します。
3.代替解決策:
また、システム全体の CA 証明書バンドルを使用するように php.ini を構成することもできます:
curl.cainfo=/etc/ssl/certs/ca-certificates.crt
4.検証の無効化を避ける:
中間者攻撃から保護するため、CURLOPT_VERIFYPEER と CURLOPT_VERIFYHOST の無効化を避けることが重要です。
5 。 Composer パッケージを使用します:
より包括的なソリューションとしては、CA 証明書を管理し、その有効性を保証する paragonie/certainty Composer パッケージの使用を検討してください:
composer require paragonie/certainty:dev-master
これらの対策を実装することでを使用すると、cURL が HTTPS 証明書を正常に認証し、安全なゲートウェイから正しいコンテンツを取得できるようになります。
以上がcURL HTTPS 接続のゼロコンテンツ長を修正する方法: 証明書認証の問題?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。