TSLハンドシェイク失敗エラーを修正

最終更新: 04/10/2024
TLSハンドシェイクが失敗しました

「」というエラー メッセージが表示された場合は、TLSハンドシェイクが失敗しました» そして何をすればいいのか分からないのは、あなただけではありません。 TLS ハンドシェイクの失敗は一般的なエラーです。もどかしい経験になるかもしれませんが、TLS ハンドシェイクのトラブルシューティングを行って解決する方法はあります。

この投稿では、TSL ハンドシェイク失敗エラーの内容と、それが発生する理由について説明します。次に、TLS ハンドシェイクのトラブルシューティング方法を学習します。

 さあ始めましょう!

TLS/SSL について

2 つのサーバー間に安全な接続を確立するには、Web サイトを安全にする必要があります。これを行うには、Secure Sockets Layer (SSL) 証明書 (SSL セキュリティおよび暗号化プロトコル) をサイトにインストールする必要があります。これにより、サイトで HTTPS を使用して安全な接続が確保できるようになります。

残念ながら、計画どおりに物事が進まないことがあり、サイトのサーバーと訪問者のブラウザとの間の接続を確立する際に問題が発生する場合があります。この問題は、「TLS ハンドシェイクに失敗しました」エラーまたはその他の問題として発生する可能性があります。

Transport Layer Security (TLS) と Secure Sockets Layer (SSL) は、暗号化と Web サイトの識別を提供するセキュリティ プロトコルです。これらは、サーバー、アプリケーション、ブラウザーなどのシステム、およびユーザー間のデータ転送を認証するために使用されます。

簡単に言えば、HTTPS を使用して Web サイトを保護するには TLS/SSL 証明書が必要です。

TLS/SSL ハンドシェイクについて

TLS ハンドシェイクは、サイト ホストとクライアント サーバーの 2 つのサーバー間の通信および合意の形式です。これは、クリアな HTTPS 接続を確立するプロセスの最初のステップです。

認証して接続を確立するには、サイトのサーバーとクライアントのブラウザーがハンドシェイクする必要があります。つまり、一連のチェック (ハンドシェイク) を行う必要があります。これにより、HTTPS 接続パラメータが設定されます。

これはどういう意味ですか?

クライアント (通常はブラウザ) は通常、サイトのサーバーへの安全な接続を確立するためのリクエストを送信します。次に、サーバーは公開キー (プロトコル) をデバイスに送信し、そのキーをプロトコル/証明書の準備されたリストと照合して確認します。次に、デバイスはキーを生成し、サーバーのキーを使用して暗号化します。

この往復通信で良い結果が得られなかった場合、つまりサーバーとクライアントの間で SSL ハンドシェイクが失敗した場合、HTTPS は安全な接続を生成せず、TLS/SSL ハンドシェイク エラーが発生します。このエラーは 2 つの方法で発生する可能性があります。

  • HTTP/1.1 503 サービスが利用できません
  • 致命的なアラートを受信しました: handshake_failure (エラー 525)
  TMUX 完全ガイド: Linux で複数の端末を管理する方法

注: これらのエラー メッセージは、TLS ハンドシェイクが失敗した API 呼び出しの後に表示されます。

TLS ハンドシェイク失敗エラーの原因は何ですか?

 一般に、エラー 525 またはエラー 503 は、TLS ハンドシェイクが失敗したことを意味します。失敗の原因には次のようなものがあります。

サーバー側でのエラーの原因は次のとおりです。

  • プロトコルの不一致: サーバーは、クライアントが使用したプロトコルをサポートしていません。
  • 無効な証明書: クライアント URL のホスト名がサーバーに保存されている証明書のホスト名と一致しないか、証明書が不完全または無効であるか、証明書が正しくないか期限切れです。
  • 暗号スイートの不一致: サーバーは、クライアントが使用する暗号スイートをサポートしていません。
  • SNI 有効サーバー: SNI (サーバー名識別) バックエンドが有効になっているが、クライアントサーバーが SNI サーバーと通信できない場合。

クライアント側では、次のような原因が考えられます。

  • 接続が第三者によって傍受されている場合。
  • クライアントデバイスの日付または時刻が正しくない場合。
  • お客様のブラウザ設定でエラーが発生した場合。

TLSハンドシェイク失敗エラーを修正する方法

「TLS ハンドシェイクの問題」には、いくつかの原因が考えられます。これらの問題を解決するには、次の解決策を使用できます。

方法番号ヒント #1: システムの日付と時刻を更新する

日付または時刻の構成が正しくないことは、TLS ハンドシェイクの問題の主な原因の 1 つです。システム時刻は証明書が有効であるか期限切れであるかを証明するのに役立つため、デバイスとサーバーの時刻または日付に不一致があると、証明書が期限切れであるように見える可能性があります。

時刻と日付を自動に設定して修正し、サイトに再度アクセスして、TLS ハンドシェイクの問題が解決されたかどうかを確認します。

方法番号解決策 #2: 最新の TLS プロトコルのサポートに合わせてブラウザの設定を修正します。

ブラウザは「中間者」であり、デバイスがサーバーと通信する方法に影響を与える可能性があります。ブラウザーの構成に誤りがあると、TLS の問題が発生する可能性があります。

  LibreOfficeでリボンスタイルのタブメニューを有効にしてカスタマイズする方法

ブラウザに問題があるかどうかを確認するには、別のブラウザを使用してサイトにアクセスし、同じ問題が発生するかどうかを確認してください。すべてのサイトで問題が発生する場合、それはシステムの問題です。

デバイスに TLS 接続を傍受し、問題のある TLS ハンドシェイクを引き起こすブラウザ拡張機能またはセキュリティ ソフトウェアがインストールされている可能性があります。多くの場合、ウイルスや マルウェア システム内。

この問題を解決するために:

  • デバイス上のセキュリティ ソフトウェアまたはブラウザ拡張機能を無効にする必要がある場合があります
  • ブラウザを再起動します。

方法 3: TLS プロトコルを確認して変更する [Windows の場合]

ブラウザ関連の問題は、プロトコルの不一致によって発生することもあります。

たとえば、ブラウザーが特定の TLS 値 (TLS 1.0 または TLS 1.1 など) に対してのみ構成されているが、サーバーが TLS 1.2 のみをサポートしている場合、両者間の通信には相互互換性のあるプロトコルが不足します。これにより、必然的に TLS ハンドシェイクが失敗します。

ブラウザでこの問題を確認するには (Google Chrome):

  • ブラウザを開きます Chrome 
  • 次に、[設定] > [詳細設定]オプションに移動する必要があります。
  • この後、下にスクロールして [システム] > [コンピューターのプロキシ設定を開く] を開く必要があります。

失敗した

  • 新しいポップアップ ウィンドウで、[詳細設定] タブを選択します。
  • [詳細設定] タブ内の [セキュリティ] セクションで、[TLS 1.2 を使用する] の横のボックスが選択されているかどうかを確認し、チェックされていない場合はオンにします。

失敗した

  • SSL 2.0 および SSL 3.0 のボックスがオンになっているかどうかを確認し、オンになっている場合はオフにします。 TLS 1.0 と TLS 1.1 についても同じことを行います。
  • [OK] をクリックし、このプロセスでハンドシェイク エラーが解決されたかどうかを確認します。

注意: を使用している場合 Mac 私は アップルのSafariの場合、TLS 1.2 はデフォルトで自動的に有効になるため、TLS/SSL プロトコルを無効または有効にするオプションは提供されません。

方法番号ヒント #4: [SNI をサポートするために] サーバー構成を確認してください

Server Name Indication (SNI) の構成は、TLS 問題の主な原因の 1 つです。サーバーが適切に機能するために、SNI を使用すると、1 つの IP アドレスに対して複数の TLS 証明書/プロトコルを安全にホストできます。

サーバー上では、各 Web サイトに独自の証明書があります。したがって、サーバーで SNI が有効になっていない場合、サーバーが現在の証明書を認識できないため、TLS ハンドシェイクが失敗する可能性が高くなります。

  Java プログラミングに最適な 7 つのプログラム

サイトに SNI が必要かどうかを確認するには、Qualys SSL Server Test を使用できます。サイトのドメイン名を入力し、[送信] をクリックして、テストによって結果が生成されるまで待つだけです。

結果ページで、「このサイトは SNI 互換ブラウザでのみ動作します。」というメッセージを見つけます。

失敗した

方法番号ヒント #5: 暗号スイートが一致することを確認してください

暗号スイートの不一致も、TLS ハンドシェイクの問題、特に TLS ハンドシェイクの失敗の主な原因です。暗号スイートは、TLS/SSL ネットワーク接続を保護するために使用される、一括暗号化、キー交換、メッセージ認証コードを含む一連のアルゴリズムにすぎません。

サーバーの暗号スイートがCloudflareのものと一致しない、または互換性がない場合、「TLDハンドシェイク失敗」エラーが発生する可能性が高くなります。

暗号スイート設定をテストするには、再び Qualys TLS サーバ テストを使用します。再度、ドメインを入力し、[送信] をクリックしてレポートを待ちます。

結果ページで、「暗号スイート」セクションをチェックして暗号情報を見つけます。

「弱い」などのステータスが書かれているので気になるものを確認してください。その後、ブラウザのサポートと比較して修正できます。

失敗した

結論

これらのヒントは理解しやすく、発生した TLS ハンドシェイク失敗エラーを解決できたと思います。 TLS は非常に大きなトピックであるため、他のソリューションも利用できる可能性があります。

役に立ったと思われた場合は、ポータルにある残りの出版物も気に入っていただけると思います。私たちは毎日たくさんの新しいヒントを共有します。 トリック、トラブルシューティング、ハウツー ガイド、その他多くのヘルプ中心の記事。短く、精緻で、魅力的で実用的です。