SSLエラーでサイトが表示されない時の解決方法

SSLエラーでサイトが表示されない時の解決方法

「保護されていない通信」「この接続ではプライバシーが保護されません」が出たら

サイトにアクセスしたら、ブラウザに「保護されていない通信」「この接続ではプライバシーが保護されません」という警告が表示された。あるいは「サイトにアクセスできません」というエラーになった。

これはSSL証明書に関するエラーです。見た目は怖いですが、原因がわかれば自力で解決できるケースがほとんどです。

この記事では、SSLエラーの原因と解決方法を初心者にもわかりやすく解説します。

そもそもSSLとは何か

SSL(Secure Sockets Layer)とは、ウェブサイトとブラウザの間でやり取りするデータを暗号化する仕組みです。現在は後継技術のTLSが使われていますが、慣習的にSSLと呼ばれています。

SSLが有効なサイトのURLは https:// で始まり、ブラウザのアドレスバーに鍵のアイコンが表示されます。SSLがない(または問題がある)サイトは http:// のままで、ブラウザに警告が表示されます。

SSLは以下の理由で重要です。

  • フォームで送信した個人情報・パスワードが暗号化されて盗聴されにくくなる
  • Googleの検索ランキングの評価要素に含まれている(SSL非対応サイトは不利)
  • SSL非対応サイトはブラウザに警告が表示され、ユーザーが離脱しやすくなる

2024年現在、ほぼすべてのサイトでSSL対応(HTTPS化)は必須と考えてください。

SSLエラーの種類と原因

SSLエラーにはいくつかの種類があります。表示されるエラーメッセージによって原因が異なります。

エラー①「この接続ではプライバシーが保護されません」(NET::ERR_CERT_DATE_INVALID)

SSL証明書の有効期限が切れているか、日付設定に問題があります。

無料SSL証明書(Let’s Encryptなど)の有効期限は90日です。自動更新の設定をしていない場合、90日ごとに更新作業が必要です。XSERVERやロリポップなどのレンタルサーバーは自動更新してくれますが、何らかの理由で失敗していることがあります。

また、閲覧者側のパソコンの日時設定が大幅にずれている場合も、このエラーが出ることがあります。

エラー②「保護されていない通信」(サイトはHTTPのまま)

SSL証明書は取得しているが、サイトのURLがhttpsになっていない状態です。

WordPressの場合、SSL証明書をサーバーで有効化しても、WordPress内のURLがhttpのままになっていることがあります。

エラー③「混在したコンテンツ」(Mixed Content)

ページ自体はhttpsで表示されているが、ページ内の画像・CSS・JavaScriptなどの一部がhttp://で読み込まれている状態です。

アドレスバーの鍵アイコンに警告マークが付いていたり、コンソールにエラーが表示されたりします。ブラウザによってはhttpのリソースをブロックして、デザインが崩れることもあります。

エラー④「証明書が信頼できません」(SSL_ERROR_BAD_CERT_DOMAIN)

SSL証明書に記載されているドメインと、アクセスしているドメインが一致しない場合に出るエラーです。

例えば、example.com のSSL証明書しか持っていないのに、www.example.comsub.example.com にアクセスしている場合に起きます。

解決方法①:SSL証明書を確認・更新する

まず、SSL証明書の状態を確認します。

XSERVERの場合

  1. XSERVERのサーバーパネルにログイン
  2. 「SSL設定」をクリック
  3. 対象ドメインのSSL状態を確認する
  4. 「無料独自SSL」の欄で有効になっているか確認する
  5. 有効期限が切れている場合は「更新」または「削除して再設定」を行う

XSERVERの無料SSLは通常自動更新されますが、まれに更新に失敗することがあります。その場合は一度削除して再設定すると解決することが多いです。

再設定後、反映までに数分〜1時間程度かかる場合があります。

自分のパソコンの時刻がずれている場合

自分のパソコンだけでエラーが出て、他の端末では正常に表示される場合は、パソコンの日時設定を確認してください。

Windowsの場合:設定 → 時刻と言語 → 日付と時刻 → 「今すぐ同期」をクリック

Macの場合:システム設定 → 一般 → 日付と時刻 → 「自動的に設定」をオンにする

解決方法②:WordPressのURLをhttpsに変更する

SSL証明書は有効なのに、サイトがhttpで表示されている場合は、WordPress内のURL設定を変更します。

管理画面から変更する

  1. WordPressの管理画面にログイン
  2. 設定 → 一般 を開く
  3. 「WordPressアドレス(URL)」と「サイトアドレス(URL)」の両方を https:// に変更する
  4. 「変更を保存」をクリック

保存後、サイトにアクセスしてhttpsで表示されるか確認してください。

管理画面にアクセスできない場合

HTTPSへの変更の途中でサイトにアクセスできなくなった場合は、wp-config.phpを編集します。

FTPでwp-config.phpを開き、以下の2行を追加します。

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

example.com の部分は自分のドメインに置き換えてください。

解決方法③:HTTPをHTTPSに強制リダイレクトする

WordPressのURLをhttpsに変更しても、httpでアクセスするとまだhttp版が表示されることがあります。httpへのアクセスをhttpsへ自動的に転送(リダイレクト)する設定が必要です。

.htaccessに追記する

サーバーのルートにある.htaccessファイルをFTPで開き、以下を追記します。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

「# BEGIN WordPress」の行より前に追記してください。

XSERVERの場合は、サーバーパネルの「SSL設定」から「HTTPSへのリダイレクト」を有効にするだけで同じ設定ができます。こちらの方が簡単です。

解決方法④:混在コンテンツ(Mixed Content)を修正する

サイト自体はhttpsになったが、アドレスバーの鍵マークに警告が出ている場合は、ページ内にhttp://のリソースが残っています。

原因の確認方法

ブラウザのデベロッパーツール(F12キーで開く)→ コンソールタブを開くと、どのファイルがhttpのままになっているか確認できます。

Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, 
but requested an insecure resource 'http://example.com/wp-content/uploads/image.jpg'

このようなメッセージが出ていれば、http://example.com/wp-content/uploads/image.jpg という画像がhttp接続になっています。

プラグインで一括修正する

「Really Simple SSL」プラグインを使うと、WordPressのデータベース内にあるhttp://のURLをhttps://に一括で置き換えられます。

  1. 管理画面 → プラグイン → 新規追加
  2. 「Really Simple SSL」を検索してインストール・有効化
  3. プラグインの指示に従って設定を完了する

多くの場合、このプラグイン1つで混在コンテンツの問題は解決します。

データベースを直接修正する

プラグインを使わずに修正したい場合は、phpMyAdminでデータベースのURLを一括置換します。

  1. phpMyAdminを開く
  2. 対象のデータベースを選択
  3. 「SQL」タブをクリック
  4. 以下のSQLを実行する
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://example.com', 'https://example.com');
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');

example.com は自分のドメインに置き換えてください。実行前に必ずデータベースのバックアップを取ること。

解決方法⑤:証明書のドメインが一致しない場合

www.example.comexample.com の両方でアクセスされる場合、両方に対応したSSL証明書が必要です。

XSERVERの無料SSLは、ドメインを設定する際に example.comwww.example.com の両方を含めて設定できます。設定時に両方のドメインを含めているか確認してください。

設定済みの場合は、サーバーパネルのSSL設定画面で確認できます。どちらか一方しか設定されていなければ、もう一方を追加します。

SSLエラーを起こさないための予防策

SSL証明書の自動更新を確認する

XSERVERなどのレンタルサーバーは自動更新が基本ですが、設定を確認しておきましょう。自動更新がオフになっていたり、メールアドレスの変更で更新通知が届いていないケースもあります。

Googleカレンダーなどに「SSL証明書の有効期限確認」を3ヶ月ごとにリマインダー登録しておくと安心です。

サイト移転・リニューアル時はSSLを再設定する

サーバーを移転したり、ドメインを変更したりした際はSSLの再設定が必要です。移転後にSSLのチェックを忘れて、数日間http接続のまま運用してしまうケースがあります。

新しいコンテンツはhttpsで登録する

WordPressに画像をアップロードする際、メディアライブラリから挿入する限り問題ありませんが、外部サイトの画像をhttp://でそのまま貼り付けると混在コンテンツになります。

外部リソースを使用する場合は、https://で始まるURLを使用するか、画像を自分のサーバーにダウンロードしてから挿入するようにしましょう。

ブラウザとサーバーどちらの問題か切り分ける

SSLエラーが出た時、まず確認してほしいことがあります。

  • 他のデバイス(スマートフォンなど)でも同じエラーが出るか:自分のパソコンだけでエラーが出る場合は、パソコン側の問題(日時設定、古いブラウザ、キャッシュなど)の可能性が高い
  • 他のブラウザでも同じエラーが出るか:特定のブラウザだけでエラーが出る場合はブラウザの設定・キャッシュの問題かもしれない
  • 他の人も同じエラーが出るか:複数の環境で同じエラーが出る場合はサーバー・証明書側の問題

まずこの切り分けを行うことで、対処すべき箇所が絞り込めます。

まとめ:SSLエラーは原因を特定すれば解決できる

SSLエラーは種類が多いですが、表示されるエラーメッセージと症状から原因を絞り込めます。対処法をまとめます。

  • 「証明書の有効期限切れ」→ サーバーパネルでSSL証明書を更新・再設定する
  • 「サイトがhttpのまま」→ WordPressの管理画面またはwp-config.phpでURLをhttpsに変更する
  • 「httpへのリダイレクトがない」→ .htaccessまたはサーバーパネルでリダイレクト設定を追加する
  • 「混在コンテンツ(Mixed Content)」→ Really Simple SSLプラグインで一括修正する
  • 「ドメインが証明書と一致しない」→ www有無の両方をSSL証明書に含めて再設定する

「自分で操作するのが不安」「データベースを触るのは怖い」という場合は、専門業者に相談することをおすすめします。

Revitでは岩見沢・札幌近郊を中心に、SSLエラーを含むWordPressのトラブル対応を行っています。「自分では直せそうにない」と感じたら、まずはLINEでご相談ください。内容を確認した上で対応可否と料金をお伝えします。

WordPressのトラブルやホームページのお悩みはRevitにご相談ください

LINEで無料相談 フォームで問い合わせ