WordPressで構築してきたサイトをSSL化する手順についてご紹介します。
サイトを設置してあるサーバーによって少し必要な作業が違う部分もありますが、まずエックスサーバーについて説明していきます。
Contents
エックスサーバーのWordpressサイトをSSL化する手順
エックスサーバーの場合は比較的にWordpressサイトをSSL化することはそう難しくはありません。
ドメインに独自SSL設定を追加したあとでその反映を待つ時間が意外と長かったりことがあるということくらいでしょうか。
エックスサーバーで該当ドメインに独自SSL設定を追加する
まずはエックスサーバーの管理画面に入り、該当のドメインに対して独自SSL設定を追加しましょう。
管理画面にログインして、該当ドメインを設定対象ドメインにし、ドメイン設定のメニューにある、SSL設定をクリックします。
SSL設定の画面になります。
独自SSLの追加タブをクリックします。
ドメインがSSL化対象のドメインとなっているのかを、再確認しておきましょう。もしも違うドメインを操作しているようならば、該当ドメインの設定に切り替えてください。
【CSR情報(SSL証明書申請情報)を入力する】というところにチェックを入れることができますが、ここはチェック不要です。
右下にある【独自SSLを追加する(確定)】ボタンをクリックして、独自SSLをドメインに追加します。
エックスサーバー側での操作は以上になります。
サーバー側でSSL設定の反映作業が行われますので、待ちます。1時間くらいとなっていますが、数時間待つこともありましたので、SSLを行う時はこの時間を頭に入れておきましょう。
WordPressの管理画面でURLを変更する
SSL設定が反映されたら、Wordpressの管理画面でこのサイトはSSL化対応したサイトなのだという設定を行います。
SSL設定の反映が完了したかどうかの確認は、実際に https:// というURLでもサイトが見ることができれば、SSL設定が完了していると判断するといいです。
管理画面にログインし、設定 → 一般設定と移動します。
WordPressアドレスとサイトアドレスに、http:// から始まるURLが記載されているはずなので、これを https:// に変えて保存します。
WordPress内部のURLを揃える
ここまでの作業でWordpressサイトはSSL化対応が行われたということになります。
ですが、http:// で投稿してきた過去の記事内容(内部リンクや画像URLです)は以前のままなので、これを https:// に統一してあげる必要があります。
記事数が少ないならば1記事づつ修正していくということも可能ですが、記事数が多いとちょっと大変です。
そこで、プラグインの Search Regex を使って過去記事のURLをSSL対応しましょう。
Search Regex をインストールして有効化すると、ダッシュボードメニューのツールのところに Search Regex が配置されますので、こちらをクリックします。
Source: Post content
Search pattern: http://
Replace pattern: https://
と設定してまずはSearchボタンをクリックしてどんな内容が該当するのかを確認しましょう。
実際に置き換えるには、Replace&Saveボタンをクリックします。
念のため、何が起きても復元できるように、データベースのバックアップを取っておくか、少なくてもツール→エクスポートですべてのコンテンツをダウンロードして保存しておきましょう。
また、ウィジェットなどに内部URLを記載してある箇所もある場合は、手動で http:// を https:// と変更しましょう。
SSL化の確認を行う
これで基本的にはSSL化が実装できました。
しかし、これまでにサイトに設置してあったツールなどがSSL化に対応していない場合があると、サイトを http:// で表示した時に、サイトに安全でないコンテンツがあるという警告が出てしまいます。
クロムの場合は、画面右上にのようなマークが出ます。
大抵は、アクセス解析やSNSボタンやブログランキングのコードの場合が原因であることが多いようです。
このマークが消えるように該当のコードをSSL化対応するか、あるいは利用をやめてコードを削除しましょう。
過去のURLへ来たアクセスを新URLへ誘導する
これでようやくWordpressサイトのSSL化が行えました。
ですが、過去のURLへ検索結果から来るアクセスは暫くの間は http:// へアクセスしてきます。
これを https:// のアクセスへ誘導しましょう。
サイトを置いてある場所にある、.htaccessファイルの先頭に、下記コードを記載します。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> |
これで検索結果から来たアクセスもSSL化を行ったURLへと誘導されるようになります。
以上でエックスサーバーで構築してきたWordpressサイトのSSL化作業は完了です。
さくらサーバーのWordpressサイトをSSL化する手順
さくらサーバーで構築してきたWordpressサイトをSSL化するためには、エックスサーバーのときよりも少し手順が多いです。
さくらサーバーで該当ドメインに独自SSL設定を追加する
まずはさくらサーバーの管理画面に入り、該当のドメインに対して独自SSL設定を追加しましょう。
管理画面にログインして、サイドバーのメニューにあるドメイン/SSL設定をクリックします。
サーバーに登録してあるドメインの一覧が並んでいますが、SSL設定を追加したいドメインの行の中にあるSSL/証明書の列の登録をクリックします。
メインカラムの無料SSL証明書にある無料SSLの設定へ進むボタンをクリックします。
無料SSL設定の画面で、無料SSLを設定するボタンをクリックします。
これで数十分~数時間でSSL設定がドメインに追加されますので、設定が反映されるまで待ちましょう。
この後に下記の3つの作業はエックスサーバーと同様の手順を行います。
・WordPressの管理画面でURLを変更する
・WordPress内部のURLを揃える
・SSL化の確認を行う
そしてここからは、エックスサーバーとは異なる作業になります。
さくらサーバー内のwp-config.phpを修正する
さくらサーバーの場合は、Wordpressの内部ページが http:// のほうへリダイレクトされてしまうという仕様があるようで、Wordpressを今後も活用するためには、これを https:// に修正する必要があります。
そこで、Wordpressをインストールした場所にあるwp-config.phpファイルに下記コードを追記します。
追記する場所は、先頭に書かれている下記コードの直後です。
1 |
<?php |
追記するコードはこのサイトの場合は下記になります。
1 2 3 4 5 6 7 8 |
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'g-outfitter.com'; $_SERVER['SERVER_NAME'] = 'g-outfitter.com'; $_ENV['HTTP_HOST'] = 'g-outfitter.com'; $_ENV['SERVER_NAME'] = 'g-outfitter.com'; } |
お気づきのように、ドメイン名称が入っていますので、g-outfitter.comの部分をSSL化対象のドメイン内容に変えてください。
これを行わないと、CSSファイルが正しく反映されないというような現象が起きてしまうようです。
過去のURLへ来たアクセスを新URLへ誘導する
この作業なのですが、ついエックスサーバーと同じコードを.htaccessファイルに追記してしまいそうなのですが、さくらサーバーの場合はコードが異なります。
例えば、このサイトの g-outfitter.com の場合ならば、下記の内容を追記することになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://g-outfitter.com/$1 [R=301,L] </IfModule> |
ご覧になってわかるように、ドメイン名称をコード内に記載する必要があります。
間違えてしまうと、正しくリダイレクトが行われません。
もしも他のドメインを書いてしまたら、もちろん記載したとおりに他のドメインへ飛ばしてしまうことになりますので、注意しましょう。
エックスサーバーとさくらサーバーでは作業内容が少し異なりますので、注意してSSL化の作業を行うようにしたいですね。
Copyright © G-outfitter.com All rights reserved.
この記事へのコメントはありません。