今やウェブサイトのSSL化(https化とも言われます)は、自社ウェブサイトの信頼性向上、SEO対策としても必ず行っておくべき対策です。
SSL化がまだ一般的でなかった頃は、SSL証明書というと有名SSLブランド(シマンテック、グローバルサインなど)で年間数万円弱〜10数万円という費用がかかるものでした。
SSL証明書をサーバーへ設定する場合も固定IPアドレスを取得しIPアドレスベースでのSSL証明書をインストールする必要があり、コスト・技術的にもハードルの高いものでした。
しかし近年は、無料独自SSLが普及しSSLの導入がしやすくなりました。
今回はXserver(エックスサーバー)で運用しているWordPressサイトをSSL化する手順と、SSL化が反映されない時の対処方法を解説します。
エックスサーバーではないサイトでも、SSL化するときにやる作業はほぼ同じですので参考にしてください。
エックスサーバーは国内シェアNo.1のレンタルサーバーです。
エックスサーバーでできること、スペック・機能を知りたい場合はこちらの記事をどうぞ。
公式https://www.xserver.ne.jp/lp/service01/
参考エックスサーバー使用歴10年以上。使ってわかったメリット・デメリット
エックスサーバーはSSL証明書が無料
Xserver(エックスサーバー )では
- 無料独自SSL証明書
- オプション独自SSL証明書(有料・年間880円〜)
を選ぶことができます。エックスサーバーの無料独自SSL証明書は「Let's Encrypt」です。
他社レンタルサーバーを使用中でも、エックスサーバーでLet's Encrypt無料SSL証明書を取得できます。
無料&即日発行も可能な格安SSL証明書取得サービス『Xserver SSL』
SSL化前の事前確認
本記事でのSSL化手順は下記状況においての説明になります。
- SSL化するドメインは既に登録済み
- SSL化するドメインのネームサーバーはXserverのものになっている
事前確認1SSL化するドメインは既に設定済み
SSL化するドメインは既にXserverに登録されている必要があります。ドメインの登録は「ドメイン設定」から行います。
新規にドメイン設定する場合は同時にSSL設定ができます
エックスサーバーで新規に独自ドメインを設定する場合、「無料独自SSLを利用する」という項目があり、ドメイン登録と同時にSSL設定が可能になっています。
関連記事エックスサーバー 無料お試し期間ありの登録方法とブログの始め方
事前確認2SSL化するドメインのネームサーバーはXserverのものになっている(他社で運用中ではない)
SSL化するドメインのネームサーバーがXserverのネームーサーバーになっていることが前提です。
エックスサーバーで運用中のドメインといういことです。
他社ネームサーバーが設定されているドメインをSSL化しようとすると失敗してしまいます。
他社ネームサーバーが設定されている、つまり他社サーバーで運用中のドメインをSSL化するには一手間、認証作業が必要になります。
他社サーバーで運用中ドメインをエックスサーバーへ移行してSSL化する方法は以下で詳しく解説しています。
関連記事(SSLありでもOK)他社サーバーからエックスサーバーへ移行する手順
ドメインそのまま エックスサーバーにWordPress移行する手順と移行できない時の対処法
エックスサーバーでSSL化する手順
エックスサーバーでWordPressをSSL化するには以下の手順で行います。
- エックスサーバー・サーバーパネルでSSL設定
- SSL化の確認
- WordPressでURLをhttpsに変更
- サイト内のリンクをhttpからhttpsへ変更
- httpからhttpsへ301リダイレクト
手順①はエックスサーバーでSSL設定を行いますが、手順②〜⑤まではエックスサーバーではないサーバーでも当てはまる作業です。
エックスサーバーの作業サーバーパネルでSSL設定
すでにドメイン設定が済んでいる場合は、SSL設定から設定します。
ドメイン一覧からSSLを設定したいドメインの「選択する」をクリック
現在のSSLの状態が表示されます。SSL化されていない場合は「OFF」の状態です。
右にある「変更」ボタンをクリックします。
設定対象ドメインを確認し、「ONにする」を押します。
これだけで設定完了です。
以前は以下のような「CSR情報(SSL申請書情報)を入力する」などの項目があったのですが、今は無くなって無料SSL設定が簡素化されています。
SSLが反映されるまでには時間がかかります(数十分〜一時間程度)
設定直後は「反映待ち」と表示されます。
SSL設定が終わっても、すぐにはSSLは反映されません。SSLが反映されるまでに数十分、最大で1時間かかります。慌てず待ちましょう。
SSL化の確認
ウェブサイトがちゃんとSSL化されているかどうか確認するにはブラウザのアドレスバーから確認します。
ブラウザでウェブサイトを開いてみて、http
をhttps
に変えてみましょう。
https://example.com
エックスサーバーのSSLはwwwありでもwwwなしでもアクセス可能です。
Google Chromeの場合、正しくSSL化されているページはアドレスバーの先頭に鍵アイコンが表示されます。
鍵アイコンをクリックすると、「この接続は保護されています」と表示されます。さらにこの「この接続は保護されています」をクリックすると「証明書は有効です」と表示されます。
証明書の詳細を確認できます。
WordPressの作業URLをhttpsからhttpsに変更
エックスサーバー側のSSL設定が完了しSSLが反映されたら、WordPressのURLをhttpsに変更します。
WordPressにログインし、設定>一般メニューを開きます。
WordPressアドレスとサイトアドレスのURLをhttpからhttpsに変更し保存します。
URLを変更すると一旦ログアウトし再度ログインを求められますのでログインし直します。
WordPressの作業内部リンクをhttpからhttpsへ変更
サイト全体をSSL化には、ブログ記事本文に含まれる内部リンクやプログラムファイルへのリンクなどもhttpsに書き換える必要があります。
以下の内容に注意してhttps化します。
- 内部リンクをHTTPSに変更する(または相対パスに変更する)
- サイト内に埋め込まれた画像やスクリプト、CSSファイルなどもHTTPSに変更する(または相対パスに変更する)
- 外部のリソースがHTTPSに対応しているか確認し、対応していない場合は代替手段を検討する
外部リソースには以下のようなものがあります。HTTPS対応しているか確認し、必要な修正を行います。
- CDN経由のアイコンフォント
- JavaScriptライブラリ
- 外部ツールやAPI
CSS,Javascriptなどの外部ファイルのリンクがhttpのままだと不完全なSSL化になってしまうので注意が必要です
Search Regexでhttpsへ検索置換する
サイト内のURLをhttps化するのは手作業では大変ですし、修正もれがあると暗号化されなくなります。
もれなく書き換えるためにはWordPressではSearch Regexという便利なプラグインがあります。
Search Regexは正規表現を使って検索置換ができるプラグインです。Search Regexが入っていない場合はプラグインページから追加します。
https://ja.wordpress.org/plugins/search-regex/
Search Regexをインストールしたら以下のようにhttpからhttpsに検索置換します。
- Search patternの欄にhttp://ドメインを入力し、
Replace patternの欄にhttps://ドメインを入力します。 - Searchボタンをクリックすると置き換えする候補が表示されます。
- そのまま置き換えする場合は「Replace」か「Replace & Save」をクリックします。
記事数が多い場合、Replaceしてもエラーになる場合があります。 その場合は数回に分けて置き換えして修正します。
Search Regexで数回に分けて検索置換するには
Limit toのところで件数を指定してReplaceします。
そのほかテーマファイルのPHPなどでもhttpで始まるURLが記載されていないかチェックします。
httpからhttpsへ301リダイレクトする
最後にhttp://〜
のURLにアクセスされたらhttps://〜
に転送されるように301リダイレクト設定します。
301リダイレクトは恒久的な転送(Permanent Redirect)でサイトの移転などに使われるリダイレクト方法で、SEO上も重要です。
301リダイレクト設定はアクセスしたユーザーに対してだけでなく検索エンジンにも伝える役割を持っています。
301リダイレクトは.htaccessを編集します。以下の内容を.htaccessに記入します。
RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
.htaccessにすでに記載されているものを上書きは×です。追記しましょう。
.htaccessはサーバー上、重要なファイルです。記述を間違えるとサーバーエラーになるので慎重に編集してください。
関連記事wwwありなし、さらにhttpsに統一する.htaccessの記述方法は下記記事も参考になります。
www有り無し統一してhttps化する .htaccessのスマートな書き方
.htaccessファイルを直接編集するか、エックスサーバーのサーバーパネルから編集できます。
SSL化が失敗する、SSLが反映されないときに確認すること
エックスサーバーでSSL化する時にトラブルになりそうな事柄をまとめました。
「無料独自SSLの設定に失敗しました」と表示されてしまう
「無料独自SSLの設定に失敗しました」となるのは、ドメインのネームサーバーがXserverのネームサーバーになっていないことが主な原因です。
他社で新規取得したドメインの場合
例えばお名前.comで取得したドメインをエックスサーバーで使う場合は、お名前.comでエックスサーバーのネームサーバーを設定します。
ネームサーバー設定から時間をおく
ドメインのネームサーバーをエックスサーバーのものに設定しても、すぐには設定できません。30〜60分程度時間を置いてから再設定を行います。
他社サーバーで運用中のドメインの場合(サーバー移転)
既に他社レンタルサーバーで運用中のドメインは、事前認証をすることでSSLが設定できます。
またサーバー移行は事前準備が必要です。準備なしでネームサーバーを切り替えてしまうとホームページが表示されない、メールが使えないということになってしまうので注意してください。
他社サーバーからエックスサーバーへ移行する手順という記事の中で詳しく解説しています。
関連記事ドメインそのまま エックスサーバーにWordPress移行する手順と移行できない時の対処法
SSLが反映されない?
SSL設定後にホームページを確認してもSSL化されていない時は以下の可能性があります。
- SSL設定が反映待ちである
- キャッシュされている
- ホームページの一部にHTTP要素がある
SSL設定が反映待ち
SSL設定を行なってから、HTTPSでアクセスできる様になるまで、数十分(最大1時間)程度かかります。
反映待ちの状態かどうかはエックスサーバーのサーバーパネルで確認できます。「SSL設定」画面で「反映待ち」の表示がある場合は消えるまで待ちましょう。
キャッシュされている
SSLが反映されないのはキャッシュが残ってることが原因の可能性もあります。
- キャッシュ系のプラグインを使ってる
- 使用中のテーマにキャッシュ機能がある
- サーバーでキャッシュ設定をしている
などが考えられます。設定を確認してキャッシュされているようならキャッシュクリアしましょう。
ホームページの一部にHTTP要素がある
ホームページの中でHTTPSではなく、HTTPでファイルを読み込んでいるとSSL化されません。
httpsとhttpの混在している状況でMixed content(混在コンテンツ)と言われます。
- CSSやJavaScriptファイルのリンクがhttpのまま
- jQueryやFontAwesomeなどCDN経由のURLがhttpになっている
- Google AnalyticsやAdsenseのコードが古いまま
などがないかを確認します。Mixed Content(混在コンテンツ)エラーを回避する方法は別の記事で詳しく解説しています。
SSL化した後にやっておくべきこと
SSL化ができたら以下の作業もやっておくことをお勧めします。
- サイトマップを再生成
- Google Search Console, Google AnalyticsのURLをhttpsに変更
サイトマップを再生成してGoogleに送信する
検索エンジンにインデックスされているURLをSSL化するため、サイトマップ(sitemap.xml)を再生成します。
WordPressの場合はプラグインを利用しましょう。
静的サイトの場合は、ジェネレーターを利用するのが一番簡単です。
sitemap.xmlを生成できるジェネレーター
サイトマップを作成-自動生成ツール「sitemap.xml Editor」
https化したサイトマップ(sitemap.xml)は、Search Consoleで送信します。
Googleインデックスは数日でhttpsのURLに変更されていました。
Search ConsoleやGoogle AnalyticsのURLをhttpsに変更する
Google Search Console、Google Analyticsで登録しているURLもhttpsに変更しておきます。
サーチコンソールでは、新たにプロパティを追加します。※ドメインプロパティで設定済みの場合は新たな設定は不要です。
Google Analytics4ではデータストリームを変更します。
ストリームURLをhttpsに変更します。
これで常時SSL化に伴う作業は完了です。
この記事ではエックスサーバーで無料SSL証明書をインストールして、WordPressをSSL化する手順を解説しました。
無料SSLは、Webサイト運営者にとってもサイトへアクセスしたユーザーにとっても大きなメリットがあります。ぜひ無料SSLを導入しましょう。
無料SSL証明書はエックスサーバーだけでなく他社レンタルサーバーでも利用できるところが多くなっています。
関連記事無料独自SSLに対応しているレンタルサーバー