「SSLハンドシェイクに失敗しました」エラーを修正する方法

公開: 2021-07-04

WebサイトのSecureSockets Layer(SSL)証明書の設定がこれまでになく簡単になりました。 あなたは無料で証明書を生成することができ、多くのホスティングプロバイダーがあなたのためにそれらを設定することさえあります。 ただし、証明書を適切に構成しないと、「SSLハンドシェイクに失敗しました」などのエラーが発生する可能性があります。

「SSLハンドシェイクに失敗しました」エラーは、ブラウザとサーバーが安全な接続を確立できない場合に表示されます。 この記事では、SSLハンドシェイクとは何か、SSLハンドシェイクを確立できなかった場合の対処方法について説明します。

それを手に入れよう!

SSLハンドシェイクとは何ですか?

ご存知かもしれませんが、SSL証明書はWebサイトの「ID」を検証します。 これは、ブラウザが証明書が有効であることを確認するためにチェックする暗号化キーを使用して行われます。 接続を確立すると、ブラウザはサーバーが送信するコンテンツを復号化できます。

このプロセスは「ハンドシェイク」と呼ばれます。 詳細は次のとおりです。

  1. SSL証明書を使用してWebサイトにアクセスすると、ブラウザーがデータの要求を送信します。
  2. サーバーはブラウザに暗号化された公開鍵を送信します。
  3. ブラウザはそのキーをチェックし、暗号化されたキーをサーバーに送り返します。
  4. サーバーはキーを復号化し、暗号化されたコンテンツをブラウザに送り返します。
  5. ブラウザがコンテンツを復号化します(したがって、ハンドシェイクが完了します)。

これはすべて数秒で行われます。 SSL証明書とHTTPSプロトコルにより、Webサイトは、パフォーマンスに悪影響を与えることなく、データを安全に送信できます。 そのため、SSL証明書はどのWebサイトにも不可欠です。 ただし、サイトの他の要素と同様に、固有の問題が発生する場合があります。

「SSLハンドシェイクに失敗しました」エラーの原因

「SSLハンドシェイクに失敗しました」エラーは、問題が何であるかを正確に示します。 ブラウザがSSL証明書を持つWebサイトとの接続を確立できない場合に表示されます。

SSLハンドシェイク失敗エラー

Cloudflareを使用しているWebサイトのこの例では、「SSLハンドシェイクに失敗しました」エラーが「525」コードに対応していることがわかります。 したがって、エラーはサーバー側とクライアント側の両方の問題に起因する可能性があります。

「SSLハンドシェイクに失敗しました」エラーの最も一般的な原因は次のとおりです。

  1. ローカルデバイスの日付または時刻が間違っています
  2. ブラウザは最新のSSLプロトコルをサポートしていません
  3. SSL証明書が無効です
  4. サーバー名識別(SNI)構成に問題があります
  5. Cloudflareなどのコンテンツ配信ネットワーク(CDN)に問題があります

このリストには、2つのローカルの問題が含まれています。2つはWebサイトのサーバーに関連しており、もう1つはサードパーティのサービスに固有のものです。 次のセクションでは、それぞれに取り組む方法を探ります。

「SSLハンドシェイクに失敗しました」エラーを修正する方法(5つの方法)

ここでは、「SSLハンドシェイクに失敗しました」エラーの原因となる可能性のあるクライアント側の問題を修正する方法を示すことから始めます。 これらのソリューションは非常に単純です。 ただし、機能しない場合は、試すことができるより技術的なソリューションに移ります。

1.ローカルデバイスの日付と時刻を更新します

ブラウザがSSLハンドシェイクを確立しようとすると、コンピュータの日付と時刻に対して証明書が検証されます。 これは、SSL証明書がまだ有効であることを確認するために行われます。

ローカルデバイスの日付と時刻がずれていると、検証プロセス中にエラーが発生する可能性があります(つまり、ハンドシェイクがありません)。 幸い、これは簡単な修正の問題です。

Windowsデバイスで、 [スタート]メニューを開き、日付と時刻の設定を入力します。 表示されるオプションを選択すると、新しいウィンドウがポップアップします。 [時間を自動的に設定する]設定を有効にし、タイムゾーンが正しいことを確認します。

時刻を自動的に設定するようにWindowsを構成する

日付が正しいことを確認してから、Webサイトをリロードしてみてください。

他のオペレーティングシステム(OS)で日付と時刻を修正する方法は次のとおりです。

  • マックOS
  • iOS
  • アンドロイド

ローカルデバイスで日付と時刻を修正してもうまくいかない場合は、次の修正に進むことができます。

2.ブラウザが最新のTLSプロトコルをサポートしていることを確認します

ブラウザの問題により、「SSLハンドシェイクに失敗しました」というエラーが発生する場合があります。 最も一般的な問題は、ブラウザが証明書が使用するトランスポート層セキュリティ(TLS)プロトコルをサポートしていないことです。

簡単に言うと、SSLとTLSはどちらも認証プロトコルであり、証明書はどちらかを使用できます。 最新のブラウザは両方のプロトコルをサポートしていますが、古いバージョンはサポートしていない可能性があります。

ブラウザが問題の原因であるかどうかを判断する最も簡単な方法は、別のブラウザを使用することです。 「SSLハンドシェイクに失敗しました」エラーが他のブラウザに表示されない場合は、元のブラウザに問題がある可能性があります。

Windowsでこの問題を修正するには、 [スタート]メニューを開き、 [インターネットオプション]と入力します。 表示されるオプションを選択して、[詳細設定]タブに移動します。 SSLおよびTLS設定に対応するオプションが見つかるまで、設定のリストを下にスクロールします。

接続がサポートするTLSプロトコルの構成

理想的には、SSL 3および2のチェックボックスをオフにする必要があります(これらのオプションが表示されている場合)。 TLS 1、1.1、および1.2のチェックボックスをオンにするだけで済みます。

次に、インターネットオプションへの変更を保存して、Webサイトに再度アクセスしてみてください。 macOSまたはiOSを使用している場合は、TLS1.2がデフォルトで有効になっている必要があることに注意してください。

3.SSL証明書が有効であることを確認します

SSL証明書には有効期限があります。 これは、ある時点で証明書を更新し、ドメインの所有権を検証するように強制する組み込み関数です。

SSL証明書の有効期限が切れると、ブラウザはハンドシェイクを確立できなくなります。 SSL証明書プロバイダーが誰であるかにもよりますが、有効期限が切れるかなり前に通知を受け取るので、更新することができます。

それでも、証明書の有効期限がわからない場合でも問題はありません。 これを行うには、SSLサーバーテストなどのツールを使用できます。

SSLサーバーテストサービスの使用

このサービスは、WebサイトのSSL証明書に関する多くの情報を返します。 証明書の有効期限が切れた場合は、有効期限が切れたことがわかります。

SSL証明書の有効期限が切れているかどうかを確認する

この場合、SSL証明書を再発行してWebサイトにインストールする必要があります。 あなたのホスティングプロバイダーが誰であるかに応じて、彼らはそのプロセスを助けることができるかもしれません。

4.サーバーのサーバー名識別(SNI)構成を確認します

共有サーバーを使用してWebサイトをホストしている場合、複数のSSL証明書で問題が発生する可能性があります。 ホスティングプロバイダーは、適切なサーバー名識別(SNI)構成を使用して、訪問者がサイトにアクセスしようとしたときに、(別のプロパティからではなく)正しいSSL証明書を取得できるようにします。

一般的に言って、ほとんどの評判の良いホスティングプロバイダーはSNI構成に問題を提示しません。 さらに、共有サーバーを使用していない場合は、次の修正に進むことができます。

ホスティングプロバイダーがSNI構成で問題を提示していないことを100%確認したい場合は、サポートに連絡して支援を求めることができます。 共有サーバーでは、この構成に直接アクセスすることはできません。 これが問題であることが判明した場合は、より堅牢なホスティングプランへのアップグレードを検討することをお勧めします。

5.Cloudflareを一時停止してSSL証明書をテストします

Cloudflareを使用している場合、「SSLハンドシェイクに失敗しました」エラーは、Webサイトへの接続の問題が原因である可能性があります。 これをテストする最も簡単な方法は、一時的に無効にすることです。

幸い、Cloudflareには、いつでもサービスを無効にするために使用できる「一時停止」機能があります。 これを行ったら、Webサイトに再度アクセスする前に、ブラウザのキャッシュをクリアすることをお勧めします。

SSLハンドシェイクエラーがなくなった場合は、Cloudflareに連絡して問題が何であるかを確認することをお勧めします。 応答を待つ間、CDNを無効にして、他のユーザーもWebサイトにアクセスできるようにします。 一方、SSLエラーが続く場合は、サーバーの構成のエラーが原因である可能性があります(上記を参照)。

結論

「SSLハンドシェイクに失敗しました」エラーは、その潜在的な原因が何であるかを知っている限り、比較的簡単に修正できます。 このエラーは、ローカルデバイスの設定、サーバーの構成、またはCDNの問題が原因である可能性があります。

「SSLハンドシェイクに失敗しました」エラーを修正するために必要なことは次のとおりです。

  1. ローカルデバイスの日付と時刻を更新します。
  2. ブラウザが最新のTLSプロトコルをサポートしていることを確認してください。
  3. SSL証明書が有効であることを確認してください。
  4. サーバーのSNI構成を確認してください。
  5. Cloudflareを一時停止してSSL証明書をテストします。

「SSLハンドシェイクに失敗しました」エラーを修正する方法について質問がありますか? 以下のコメントセクションでそれらについて話しましょう!

vladwel /shutterstock.com経由の注目の画像