「SSL/TLSのセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした」というエラーメッセージがサイトに表示されると、訪問者のユーザーエクスペリエンス(UX)に悪影響を与えます。
このエラーを回避する方法として、システム全体の設定を更新することもできますが、これはサイトをセキュリティリスクに晒す恐れがあります。したがって、これからご紹介する方法でエラーメッセージを速やかに解消して、サイトを正常な状態に戻しましょう。
解決方法は、根本的な原因によって異なりますが、例えばサイトのSSL証明書をコンピューター上の安全な場所(証明書ストア)に保管する必要がある場合があります。その一方で、ブラウザを更新するだけで解決することも。
今回は、この「SSL/TLSのセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした」エラーの概要と主な原因についてご説明した後、解決方法を見ていきます。
「SSL/TLSのセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした」エラーとは
ウェブサイトでは、さまざまなエラーに遭遇するものですが、その深刻度はさまざまです。例えば、「この接続ではプライバシーが保護されません」エラー(以下「信頼関係エラー」に省略)は簡単に解決可能ですが、データベース接続エラーやセキュア接続エラーは、トラブルシューティングがより複雑になります。
信頼関係エラーは、ブラウザがそのサイトを信頼できないと判断した時に発生します。この原因としては、ブラウザがサイトのSSL証明書を検証できない、つまりサイトの身元を確認できないことが最も一般的です。
これによって、サーバーと安全な暗号化された接続を確立することができず、ブラウザがそのサイトへのアクセスに警告を表示します。
このエラーが発生すると、サイトのコンテンツが閲覧できなくなるため、イライラさせられます。もし自分のサイトでこのエラーが発生すれば、顧客や訪問者からの信頼を失い、会社の評判を落とすことにつながりかねません。セキュリティを重視していない会社と判断されてしまうのは、何としても避けたいものです。
SSLとTLSの概要
SSL(セキュアソケッツレイヤー)とTLS(トランスポートレイヤーセキュリティ)は、データを暗号化し、安全な接続を認証するための暗号化プロトコルです。
SSLとTLSの重要な違いとして、TLSはSSLの最新バージョンです。TLSでは、以前のSSLプロトコルの脆弱性がいくつか修正されています。
先にも触れましたが、サイト上のデータを保護するためにSSLは欠かせません。訪問者がサイトにアクセスしようとすると、ブラウザはそのサイトのSSL証明書が有効であるかどうかを検証します。SSL証明書が有効であれば、サイトとサーバー間に暗号化された接続が確立され、個人情報や支払い情報などのデータを安全に送信できるようになります。
SSL証明書にはさまざまな種類があり、例えばシングルドメイン証明書は、1つのウェブサイトが対象です。
ワイルドカード証明書は、1つのドメインと紐付くすべてのサブドメインを保護します。ただし、多数のサブドメインを持つウェブサイトが複数ある場合は、マルチドメインワイルドカード証明書を使用するのが賢明です。
優れたホスティングサービスは、SSL証明書を無料で提供しているもので、カスタマーサポートに依頼するだけで証明書を有効化できる可能性があります。
Kinstaの場合、WordPress専用マネージドホスティングをご利用いただけると、Cloudflare統合によってSSL証明書を無料で取得することができます。また、ワイルドカードドメインにも対応しています。
加えて、スピードを重視したインフラストラクチャ、ファイアウォール保護、専用コントロールパネルのMyKinstaに内蔵された無料APMツールなど、さまざまな機能が揃っています。
あるいは、ComodoやDigiCertなどの信頼性の高い認証局で独自SSL証明書を購入することも可能です。
購入後、SSL証明書をインストールし、正常に動作するかを確認します。お使いのホスティングサービス以外で証明書を取得した場合、他社から証明書を転送することも可能です。
信頼関係エラーの主な原因
信頼関係エラーの原因には、以下のようなものが挙げられます。
-
- 自己署名証明書を使用している─無料で生成できるが、信頼できる第三者によって署名されていないため信頼性に欠ける。
- 証明書の期限が切れている─SSL証明書の有効期限は1年が一般的で、有効期限が近づいたら更新が必要に。
- 信頼できる認証局(CA)で署名された証明書を使用していない─自己署名証明書と同様、名の知れていない認証局はブラウザに信頼されていない可能性も。
- 無料のSSL証明書を使用している─中には無料で証明書を発行している認証局も。この場合、エラーの解決にはルート証明書を自分でブラウザにインポートする必要がある。
- チェーン/中間証明書がない─信頼できるSSL証明書は、その信頼性の証明できるよう、少なくとも1つのチェーン/中間証明書をインストールするように促す。これはブラウザによって異なり、例えば、Mozilla Firefoxでは中間証明書を自動ダウンロードできない。
ほとんどの場合、有効でないSSL証明書が原因になっているため、簡単なSSLチェックを行うことをおすすめします。
Qualys SSL Labsのテストツールは、完全無料で操作も簡単です。「Hostname」にドメイン名を貼り付けて、「Submit」をクリックするだけ。
サイトのウェブサーバーのSSL/TLS構成の検証、さらに、エラーや警告の詳細とその解決方法も確認することができます。
今回のエラーの回避策も確認できるはずですが、セキュリティ上のリスクを伴う可能性があり、必ずしも安全な選択肢とは限りません。したがって、この情報を鵜呑みにせず、まずな根本的な原因に対処して、エラーの解決策を導き出すのが得策です。
信頼関係エラーの解決方法(3ステップ)
信頼関係エラーの主な原因が分かったところで、早速本題の解決方法を3ステップでご紹介します。まずは、原因の特定から始めましょう。
ステップ1. 証明書エラーを確認する
まずは、エラーの原因を特定しましょう。この手順は、お使いのブラウザによって異なります。
Safariの場合は、「詳細を表示」をクリックすると、エラーメッセージの詳細を確認することができます。その後、ウェブサイトにアクセスするか、証明書を表示します。
後者を選択すると、問題の根本的な原因を確認することができます。以下のスクリーンショットの例では、サイトが第三者によって検証されていない自己署名証明書を使用していることがわかります。
Chromeの場合は、やや手順が異なり、検索バーに以下のように表示されている「保護されていない通信」または「Not Secure」をクリックします。
クリックして、詳細とエラーの原因を確認します(この段階では根本的な原因を特定できない可能性も)。以下の例では、ウェブサイトの証明書が有効でないことを示しています。
「証明書が無効です」をクリックすると、ポップアップ画面にエラーの詳細が表示され、発行日や有効期限、証明書を発行したCAを確認することができます。
以下は、SSL証明書の有効期限が切れている場合の例です。
「詳細」タブに切り替えると、証明書のシリアル番号、署名アルゴリズム、公開鍵などの情報を確認することができます。
どのブラウザを使用するにせよ、まず最初にエラーの原因を特定することが重要です。そうでなければ、トラブルシューティングに無駄な時間を費やすことになります。
ステップ2. 一般的なトラブルシューティングを試す
より具体的な解決策を講じる前に、まずは一般的なトラブルシューティングを試みてみてください。一見ブラウザやシステムに影響を与えることはないであろう些細なことは、見過ごしがちです。ブラウザやプラットフォームで、エラーメッセージを解消する簡単な方法はいくつかあります。
例えば、システムの日付と時刻が正しく設定されているかどうか。設定が正しくない場合、有効なSSL証明書をインストールしていても、使用しているデバイス上で無効になってしまうことがあります。
Macの場合は、「システム環境設定」から「日付と時刻」に移動します。
変更を加えるには、ポップアップ画面の下部にある南京錠のアイコンをクリックします。
マップでタイムゾーンを選択するか、手動で正しい日付と時刻を設定してください。
もう1つのよくある原因は、ブラウザまたはシステムが最新の状態になっていない場合。古いソフトウェアを実行すると、エラーを引き起こす可能性があり、さらにセキュリティ侵害の危険性もあります。
お使いのMacが最新の状態であるかどうかを確認するには、「システム環境設定」>「ソフトウェアアップデート」に移動します。
また、お使いのブラウザが最新であるかを確認するには、例えばGoogle Chromeの場合、画面右上の縦三点リーダーをクリックし、「ヘルプ」>「Google Chromeについて」に移動します。
すると、自動的に更新のチェックが行われます。
その後、ブラウザを再起動すると更新が完了します。なお、Chrome以外をお使いの場合は、この手順は若干異なります。
ステップ3. 適切な解決策を見極める
この信頼関係エラーの解決方法は、ステップ1で見つけた原因によって異なります。以下、一般的な4つのシナリオを見ていきます。
ドメイン名と証明書の名前が一致しない
SSL証明書のコモンネームとブラウザの検索バーに表示されるドメイン/URLが一致していないというのはよくある原因です。証明書のコモンネーム(ホスト名)は、証明書の「詳細」セクションを展開すると確認できます。
コモンネームがサイトのURLと一致していることを確認しましょう。「www」が抜けているという単純なミスもあり得ます。
多くのサイトでは、訪問者を考慮し、wwwありとwwwなしの両方のドメイン名でアクセスできるようになっており、この場合はマルチドメインに対応した証明書が必要です。
ドメイン名が一致せず、現在シングルドメインSSL証明書を使用している場合は、証明書を新たに発行してください。マルチドメイン証明書を使用している場合は、証明書に別名(SAN / Subject Alternative Names)を追加または削除すればOKです。
証明書の有効期限が切れている
期限切れの証明書を使用していると、訪問者やサイトが攻撃に対して脆弱になります。ハッキングなどを行う悪意あるユーザーは、この状況を利用してサイトを乗っ取り、アクセスしたユーザーの個人情報などを盗みます。
したがって、SSL証明書の有効期限が切れていることが発覚した場合は、直ちに有効な証明書をインストールして、サイトの信頼性を守りましょう。また、その後の策として、有効期限が切れる前に証明書を更新できるよう、リマインダーを設定することをおすすめします。
証明書が信頼できる認証局で発行されていない
発行元の認証局が信頼できない場合、ブラウザで設定が必要になります。
Safariの場合は、「証明書を表示」をクリックします。ポップアップ画面の「信頼」を展開し、「この証明書を使用するとき」までスクロールします。
ドロップダウンメニューをクリックして、「常に信頼」を選択します。
またポップアップ画面の「?」アイコンをクリックすると、Macシステム上のすべての証明書を変更することができます。「キーチェーンアクセスを開く」をクリックしてください。
「システムルート」の「証明書」タブを開きます。
該当の証明書を右クリックして「情報を見る」をクリックすると、証明書の信頼設定を編集することができます。
Windowsの場合は、検索メニューから「mmc」を検索し、マイクロソフト管理コンソールを開きます。「ファイル」>「スナップインの追加と削除」に移動しましょう。
「証明書」を選択して、「追加」をクリック。
次に「コンピュータアカウント」を選択して「次へ」をクリックし、次の画面で「ローカルコンピュータ」を選択し、「完了」をクリックします。
最後に「OK」クリックして終了です。
「証明書」をダブルクリックして、「信頼されたルート証明機関」を見つけてください。それから、「すべてのタスク」にカーソルを合わせて「 インポート」を選択します。
すると、証明書のインポート画面が表示されます。「次へ」をクリックし、インポートするファイル名を入力するか、コンピュータ上で証明書を探します。
最後に「次へ」をクリックすると、「信頼されたルート証明機関」に証明書を追加することができます。
自己署名証明書を使用している
自己署名証明書は、認証局で署名されていないことを意味します。例えばソフトウェアの開発段階など、自己署名証明書の方が適している状況もあります。
しかし、信頼できる機関によって証明書が検証されていないことから、ブラウザのセキュリティと信頼性の問題を引き起こすことがあります。また、自己署名証明書は失効させることができないため、サイトや訪問者を危険に晒すことになります。CA署名証明書の場合は、危険に晒されると、CAが証明書を無効にし、それ以上使用できない状態にすることができます。
テストなどの特別な目的なく自己署名証明書を使用している場合、少なくとも一部のトラフィックがブロックされている可能性があります。すべてのユーザーが安全にアクセスできるようにする方法は1つ。信頼できるCAから新たに証明書を発行してもらいましょう。
まとめ
信頼関係エラーが表示されると、面倒に感じるもの。暗号化された接続が確立されないことが原因で、サイトにアクセスできなくなります。自分のサイトでこのエラーが発生した場合、訪問者からの信頼を失う恐れがあります。
エラーの原因を特定することが、解決への第一歩です。SSL証明書の有効期限が切れている、または信頼できるCAによって、署名されていない証明書を使用している可能性があります。この場合、新たに証明書を発行してもらうか、SSL証明書をコンピュータ上の証明書ストアに追加することで、エラーが解消する可能性があります。
サイトの問題を特定して解決する簡単な方法は、Kinsta APMのようなパフォーマンス監視ツールを使用すること。Kinstaが独自に設計したAPMツールでは、ワーカープロセス、データベースクエリ、外部HTTP呼び出しなどの情報を取得可能。さらに、すべてのプランに無料で付帯しています。Kinstaのホスティングプランの詳細はこちらをご覧ください。