常時SSL化とは?設定方法をわかりやすく解説
常時SSL化とは?
常時SSL化とは、Webサイト全体をSSL化(暗号化)することです。
サイトの一部だけを暗号化するのではなく、サイト全体を暗号化することで、閲覧者がより安全な通信環境でサイトを利用できるようになります。
SSL化しているページやファイル(画像など)にアクセスすると、URLの先頭が「https」になり、ブラウザのアドレスバーに「鍵マーク」が表示されます。
サイト内のすべてのページとファイルをSSL化している状態にすることを常時SSL化といいます。
SSLそのものについての詳細は、SSL(https)についてわかりやすく解説をご覧ください。
常時SSL化の必要性
現在のインターネットでは、どのようなサイトであっても常時SSL化することが必須となっています。
セキュリティを向上させることはもちろん、SEOなどの面においても常時SSL化することは重要です。
セキュリティ面においての必要性
以前までは、個人情報・クレジットカード情報・パスワードなどを入力するページのみSSL化するというのが一般的でした。
しかし、サイト内にSSL化していない(暗号化されていない)ページやファイルがあることによって、情報傍受やフィッシングといった中間者攻撃の危険があるのです。
常時SSL化することでこのような危険からサイトを守り、閲覧者が安全にサイトを利用できるようになります。
SEO面においての必要性
サイトがSSL化しているかということを、Googleでは検索順位を決める要因のひとつとしています。
今のところ順位を大きく動かすほどの影響はありませんが、サイトの安全性や信頼性に関わることであるため、今後は重要な要因になる可能性があります。
また、SSL化していないページにアクセスすると、ブラウザが「保護されていない通信」といった警告を出すようになったので、閲覧者が危険と判断してサイトから離れてしまうという問題もあります。
直接的にも間接的にもSEO面への影響があるため、アクセスを集めたいサイトで常時SSL化は必須といえます。
Webサイト高速化においての必要性
複数のリクエスト&レスポンスを同時に処理することでサイトの高速化ができる「HTTP/2」というプロトコル(通信方法)は、SSL化していないサイトでは使用することができません。
サイトを高速化することは、閲覧者が快適にサイトを利用できるようになるだけでなく、SEO面にも影響があります。
HTTP/2はサイト高速化において主要な施策のひとつであり、特にコンテンツの多いサイトやアクセスの多いサイトほどHTTP/2を使用するメリットがあります。
さらに、HTTP/2よりも通信効率が上がる「HTTP/3」というプロトコルもあり、これからインターネットの標準となっていきます。
HTTP/2やHTTP/3が標準となっている中で、サイトの常時SSL化も同じく標準となっています。
アクセス解析においての必要性
SSL化しているサイトからSSL化していないサイトへアクセスした場合、どのサイトからアクセスしてきたのかという情報(リファラー情報)を引き渡さないようになっています。
多くのサイトはすでに常時SSL化しており、もちろんGoogleなどの検索エンジンも常時SSL化しているので、自分のサイトも常時SSL化しておかないとアクセス元がまったくわからなくなります。
また、同じサイト内でSSL化しているページからSSL化していないページへアクセスした場合でも、異なる閲覧者のアクセスという扱いになってしまうため、正確なPV数や行動の分析できません。
アクセス解析で正しい情報を得るためには、常時SSL化している必要があります。
常時SSL化の設定方法
常時SSL化は以下のような手順で設定していきます。
難しい作業はありませんが、正しく設定できていないとサイトが表示されなくなることもあるため、ひとつずつ確認しながら行うようにしてください。
- SSLサーバー証明書を取得する
- 内部リンクとファイルのパスをHTTPSにする
- 内部リンクとファイルのパスをHTTPSにする(WordPressの場合)
- 外部サイトから読み込んでいるコンテンツの確認
- HTTPからHTTPSにリダイレクトする
- WordPressのサイトURLをHTTPSにする
- SNSや外部サイトからのリンクURLをHTTPSにする
- Search ConsoleにHTTPSにしたサイトを登録する
SSLサーバー証明書を取得する
常時SSL化するために、まずは「SSLサーバー証明書」を取得する必要があります。
SSLサーバー証明書とは、暗号化した通信をするという役割と、ドメインの所有権や運営組織の実在性を証明するという2つの役割を持った電子証明書です。
SSLサーバー証明書は、基本的に利用しているレンタルサーバーから申し込みをして取得します。
現在は、多くのレンタルサーバーで無料のSSLサーバー証明書(無料独自SSL)が利用できるため、費用負担なしで常時SSL化することが可能です。
無料独自SSLが利用できるレンタルサーバーについては、レンタルサーバー比較|料金と機能の一覧でご確認ください。
SSLサーバー証明書の取得が完了すれば、暗号化されたURLにアクセスできるようになります。
- 「http」からはじまるURLは暗号化されていない
- 「https」からはじまるURLは暗号化されている
内部リンクとファイルのパスをHTTPSにする
内部リンクやサイトで使用するファイル(画像・CSS・JavaScriptなど)のパスは、すべて「http」から「https」に変更する必要があります。
※head内のmetaタグやlinkタグも忘れずに変更してください。
※CSS内やJavaScript内のパスも確認してください。
ただし、相対パスやルートパスで参照している場合は、パスを変更する必要はありません。
パスの変更が必要になるのは絶対パスで参照している場合です。
内部リンクとファイルのパスをHTTPSにする(WordPressの場合)
WordPressサイトの場合は、パスをひとつずつ直していくのは大変なので、Better Search Replaceなどのプラグインで一括置換することをおすすめします。
Better Search Replaceで「http」から「https」に変更する方法は以下のようになります。
- 『Search for』に「http」からはじまるURLを入力する
- 『Replace with』に「https」からはじまるURLを入力する
- 『Select tables』にある項目をすべて選択する
- 『Run as dry run?』にチェックを入れる
- 『Run Search/Reolace』をクリックしてテストを実行する
- 『Run as dry run?』のチェックをはずす
- 『Run Search/Reolace』をクリックして置換を実行する
外部サイトから読み込んでいるコンテンツの確認
外部サイトへのリンクは「http」でも問題ないですが、外部サイトから画像・動画・CSS・JavaScriptなどのコンテンツを読み込む場合は「https」になっている必要があります。
外部サイトのURLは変更できないので、「http」の外部サイトからコンテンツの読み込みをしている場合は、違うサイトのコンテンツを使用するか、もしくはコンテンツの使用をやめるかになります。
HTTPからHTTPSにリダイレクトする
常時SSL化するためには、「http」へのアクセスを「https」に自動で転送する「リダイレクト」という設定が必要になります。
リダイレクトしていないと、「http」と「https」の両方にアクセスできる状態になっているため、セキュリティ的にもSEO的にもよくありません。
重複したURLによる影響については、URL正規化の方法【.htaccessの書き方など3種類】をご覧ください。
「http」から「https」にリダイレクトするには、.htaccessというファイルを使用します。
.htaccessとは、Webサーバーの挙動を設定できるファイルのことで、多くのレンタルサーバーで使用することができます。
.htaccessを編集するには、レンタルサーバーから.htaccessファイルをダウンロードし、メモ帳などのテキストエディタで開きます。
※.htaccessは挙動にかかわる重要なファイルなので、必ずバックアップをとり、記入間違いのないように注意してください。
※.htaccessのルールとして、最後の行を必ず改行(空白の行)にしてください。
※メモ帳で.htaccessの編集をすると「.htaccess.txt」というファイルになってしまうので、FTPソフトでレンタルサーバーにアップロードした後、FTPソフト上で「.txt」の部分を削除してください。
「http」から「https」にリダイレクトするには、以下のコードを.htaccessに記述します。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
コード内の「R=301」は、301リダイレクトという指示を表しています。
301リダイレクトとは、永続的な転送を意味するリダイレクトで、サイトの移転やURLの変更をするときに使用します。
検索エンジンでは、「http」と「https」は別のURLとして扱われますが、301リダイレクトを使用することでSEOの評価を下げずに(失わずに)「https」へ転送できます。
WordPressのサイトURLをHTTPSにする
WordPressサイトの場合は、設定されているサイトURLを変更する必要があります。
WordPressのダッシュボードにログインし、設定の一般にある『WordPressアドレス』と『サイトアドレス』のURLを「http」から「https」に変更します。
SNSや外部サイトからのリンクURLをHTTPSにする
自身のSNS(Twitter・Facebook・Instagramなど)にサイトへのリンクを記載している場合は、URLを「http」から「https」に変更します。
その他、自身で変更可能な外部サイトからのリンクも同じように変更します。
リダイレクトしていればアクセス的には問題ないですが、セキュリティ面やSEO面からみると、外部サイトからのリンクはできるだけ「https」になっている方が望ましいです。
Search ConsoleにHTTPSにしたサイトを登録する
常時SSL化が完了したら、Search Consoleに「https」のプロパティを追加します。
プロパティタイプは『URLプレフィックス』で登録すれば問題ありません。
参考:ウェブサイト プロパティを追加する - Search Console ヘルプ
Search Consoleに登録した後は、「https」用のサイトマップを作成し、Search Consoleから送信してください。
また、Googleアナリティクスを利用している場合も、新しく「https」のプロパティを追加する必要があります。
常時SSL化の確認方法
問題なく常時SSL化できているかを調べるには、混合コンテンツがないかを確認するのと、リダイレクトがちゃんとできているかを確認します。
ブラウザのアドレスバーに「保護されていない通信」などの警告が表示されている場合は、SSLのエラーが出ている状態です。
警告をクリックすれば詳細が出るので、エラーの内容をよく確認してください。
例えば、「このサイトで目にする画像は、悪意のあるユーザーによって差し替えられたものである可能性があります」といった内容であれば、画像が混合コンテンツになっているという意味になります。
混合コンテンツがないか確認する
暗号化された「https」ページの中に暗号化されていない「http」で読み込んでいるコンテンツがあることを「混合コンテンツ」と呼びます。
よくあるのは、読み込む画像などのパスを「https」に変更し忘れているパターンです。
ブラウザの開発者ツールを使用すれば、混合コンテンツがあるかということと、どのファイルが混合コンテンツになっているかということを簡単に確認することができます。
Google Chromeの場合は以下の手順で確認できます。
- 調べたいサイトのページでキーボードの「F12」を押す
- 「Console」をクリック
- 「Mixed Content」の警告が出ているか確認する
- 「Mixed Content」の警告が出ていた場合、表示されているURLから混合コンテンツになっているファイルを特定する
Google ChromeやFirefoxなどのブラウザでは、混合コンテンツがあってもブロックして表示しない仕様になりました。
この仕様の影響でエラーを発見しづらくなったため、ブラウザの開発者ツールを開いた状態でいろんなページを調べ、混合コンテンツを発見次第必ず修正するようにしてください。
外部リンクの場合は「http」になっていても混合コンテンツになりませんが、外部サイトから読み込んでいるファイルが「http」になっている場合は混合コンテンツになります。
リダイレクトできているか確認する
「http」から「https」にリダイレクトできているかを確認するには、リダイレクトチェッカーというオンラインツールを使用します。
おすすめのリダイレクトチェッカーは、リダイレクトチェッカー|ABASHI Web Toolsです。
使い方は簡単で、入力欄に「http」からはじまるURLを入力し、『チェックする』をクリックするだけです。
「http」から「https」にリダイレクトできているかということと、ステータスが301になっているかを確認します。
セキュリティをさらに強化するHSTSについて
常時SSL化が完了しても、セキュリティ的には完璧な状態ではありません。
常時SSL化しているサイトでは、「http」へのアクセスを「https」にリダイレクトしますが、暗号化していない「http」のページを一度経由するため、その隙を狙った中間者攻撃の危険が残っています。
この「http」ページを狙った中間者攻撃の防止策として考えられたのが「HSTS」です。
HSTSを有効にすることで、ブラウザが強制的に「https」で接続するようになります。
ただし、HSTSはとても強力な指示であり、サイトに不具合が出る可能性もあるため、ちゃんと仕組みを理解したうえで設定する必要があります。
HSTSの仕組みや設定方法は、HSTSの解説と設定方法【.htaccessの書き方】を参考にしてください。
常時SSL化の注意点
常時SSL化する際に間違った設定をしてしまうと、サイトが正しく表示されなくなったり、SEO面で悪影響が出る可能性もあります。
繰り返しになる部分もありますが、常時SSL化にする際の注意点をまとめておきます。
- 外部リンク以外のURL(パス)は、すべて「https」になっている必要があります。
head内・CSS内・JavaScript内に関しても、絶対パスで記述してあるものはすべて変更してください。 - 外部サイトから読み込んでいるコンテンツのURLも「https」になっている必要があります。
URLが「http」であった場合、外部サイトのURLは変更できないので、違うサイトのコンテンツを使用するかコンテンツの使用をあきらめるかになります。 - 混合コンテンツは、常時SSL化するときに一番発生しやすいエラーなので、ブラウザの開発者ツールを使用してサイト内のいろんなページをよく確認してください。
- リダイレクトの設定は、永続的な転送を意味する301リダイレクトを使用し、設定後はリダイレクトチェッカーで正しくリダイレクトできているかをテストしてください。
- .htaccessファイルは編集する前に必ずパックアップを取り、編集後はサイトの表示や動作に問題がないか確認してください。