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 証明書を管理し、その有効性を確認するための便利な方法を提供します。
追加のヒント
以上がcURL HTTPS 接続で長さ 0 のコンテンツが返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。