ホームページ > バックエンド開発 > PHPチュートリアル > cURL HTTPS 接続で長さ 0 のコンテンツが返されるのはなぜですか?

cURL HTTPS 接続で長さ 0 のコンテンツが返されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-17 22:46:02
オリジナル
709 人が閲覧しました

Why Does My cURL HTTPS Connection Return 0 Length Content?

cURL での HTTPS 接続エラー: 長さ 0 のコンテンツの解決

cURL で安全な HTTPS 接続を確立すると、ユーザーは次のような永続的なエラーが発生することがあります。返されるコンテンツの長さはゼロです。この問題は、特に支払いゲートウェイの統合に cURL を使用する場合に特にイライラする可能性があります。

問題の原因

このエラーの根本的な原因は通常、証明書の検証にあります。プロセス。 cURL は、事前にパッケージ化された認証局 (CA) 証明書に依存して HTTPS 接続を検証します。ただし、これらの証明書は時間の経過とともに古くなり、接続エラーが発生する可能性があります。

解決策

この問題を解決するには、古い CA 証明書を更新されたバージョンに置き換える必要があります。 .

1.手動交換

a. http://curl.haxx.se/ca/cacert.pem にアクセスし、最新の CA 証明書ファイル (cacert.pem) をダウンロードします。
b.ファイルをサーバー上の適切なディレクトリに保存します。
c. cURL リクエストに、次の行を追加します。

curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
ログイン後にコピー

これにより、接続検証に更新された CA 証明書ファイルを使用するように cURL に指示されます。

2. PHP.ini 設定

a. php.ini ファイルを開きます。
b.次の行を追加します:

curl.cainfo=/etc/ssl/certs/ca-certificates.crt
ログイン後にコピー

これにより、すべての cURL 接続に対してシステムの信頼された CA 証明書ストアを自動的に使用するように PHP が構成されます。

3. Composer パッケージ

より堅牢なソリューションとしては、composer パッケージ paragonie/certainty の使用を検討してください。このパッケージは、CA 証明書を管理し、その有効性を確認するための便利な方法を提供します。

追加のヒント

  • CURLOPT_VERIFYPEER と CURLOPT_VERIFYHOST を無効にしないでください。セキュリティが損なわれる可能性があります。
  • サーバーの SSL 証明書が有効で、有効期限が切れていないことを確認してください。
  • HTTPS 接続をブロックしている可能性のあるファイアウォールまたはウイルス対策ソフトウェアがないか確認してください。

以上がcURL HTTPS 接続で長さ 0 のコンテンツが返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート