ホームページ  >  記事  >  バックエンド開発  >  cURL の「SSL/TLS ハンドシェイクのどこかで問題が発生しました」エラーを解決する方法

cURL の「SSL/TLS ハンドシェイクのどこかで問題が発生しました」エラーを解決する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 13:45:02936ブラウズ

How to Solve

cURL での SSL/TLS ハンドシェイク エラーのトラブルシューティング

cURL を使用して SSL/TLS プロトコルを使用して安全な接続を確立すると、次のエラーが発生する場合がありますメッセージ「SSL/TLS ハンドシェイクのどこかで問題が発生しました。」これは、cURL とリモート サーバー間の認証および暗号化プロセス中に問題が発生していることを示しています。

SSL 検証の無効化 (CURLOPT_SSL_VERIFYPEER) や CA 証明書の設定 (CURLOPT_CAINFO) などの一般的な解決策を試みたにもかかわらず、問題は解決しません。

解決策:

この問題の根本原因は、cURL に組み込みのルート証明書がないことにあります。最新のブラウザにはルート証明書が含まれていますが、cURL には「cacert.pem」という名前の信頼された認証局 (CA) ファイルへの明示的なパスが必要です。

この問題を解決するには、次の手順に従います。

  1. 公式 cURL Web サイトから cacert.pem ファイルをダウンロードします: https://curl.haxx.se/docs/caextract.html
  2. CURLOPT_CAINFO オプションをダウンロードした cacert.pem ファイルのパスに設定します:
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem');

この CA ファイルには、SSL/TLS ハンドシェイク中に cURL がサーバーの証明書を検証できるようにする信頼されたルート証明書が含まれています。このファイルがないと検証プロセスが失敗し、ハンドシェイク エラー メッセージが表示されます。

これらの手順を完了すると、cURL を使用して安全な HTTPS 接続を確立できるようになります。

以上がcURL の「SSL/TLS ハンドシェイクのどこかで問題が発生しました」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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