今回は、このブログサイトに https (SSL) を導入してみようと思います。
数年前からではありますが、ウェブサイトのSSL(https)化がメジャーになってきてますので、このしょぼいブログサイトにも実装してみます。
https (SSL) とは
まず、https (Hypertext Transfer Protocol Secure) についてですが、これは、 Webサーバーとブラウザ間で行うデータのやり取りを、SSL/TSLという暗号化技術を使用することで、他者に通信内容を読まれにくくする規格の一種です。
詳しくは Wiki に書いてあります。(`・ω・´)つ https://ja.wikipedia.org/wiki/HTTPS
https の設定
さて、https の設定を進めますが、私は XREA サーバーを使用していますので、この環境前提の手順になります。
XREA の場合、費用のかからない「無料SSL」が提供されているようで(通常年間で、数千円~十数万円程度かかる)、ダッシュボードから設定できるようです。
今回はこの無料SSLを導入していきます。
XREAの無料SSL設定マニュアル
公式の設定マニュアルはこちら。これを参考に設定してみます。

XREAダッシュボードを開く
無料SSLの設定は XREA のダッシュボードから行えます。
「サイト設定」→「該当のサイト」を選び、「サイト設定の変更」から設定ページを開けます。

無料SSLを有効化しようとしたが選択できない
ここで問題が発生。
無料SSLの選択ができませんでした。(´・ω・`;)

調べたところ、作成済みサイトの無料SSL化は単純にできないようです。
サイト一覧を見ると、サイト名に Main と Sub という区分がありますが、無料SSLを使用するには、この区分を Sub (サブドメイン)にする必要があるようです。
参考:https://help.value-domain.com/f_domain/index.cgi?read=205&ukey=0

単純にはできないというだけで、変更する方法はありますので、次のやり方で進めてみます。
- サイト設定からドメインの紐付けを解除
- 無料SSLを有効にした新規サイトを作成
- WordPress関連ファイルの移行
- httpからhttpsへのリダイレクト設定
- 動作確認
というわけで、少し作業が追加されました。。。
サイト設定からドメインの紐付けを解除
今まで Main としていたサイトに、未使用のドメインを再割り当てします。
私の場合、これまで Main サイトには「www.ushiblo.com」を割り当てていましたが、XREAから割り振られている「ushiblo.sxxxx.xrea.com」に変更することにします。
※この操作をするとドメインを再割り当てするまでサイトが公開されなくなりますので十分注意が必要です。

無料SSLを有効にした新規サイトを作成
「サイトの設定」から「サイト設定の新規作成」を開き、無料SSLを適用したサイトを新たに作成します。

先程紐付けを解除したドメイン名を改めて選択し、無料SSLを有効にしたら、サイトの作成を確定します。

WordPress関連ファイルの移行
サイトの設定が完了したら、続いては WordPress の関連ファイルを移行します。
移行の内容は、Main サイトのドキュメントルートにある WordPress の関連ファイルを、サブドメインのドキュメントルートに移動させる作業になります。
ちなみに、それぞれのドキュメントルートは次のディレクトリです。
Mainサイト | /virtual/<username>/public_html ※<username>:ユーザー名に読み替え |
Subサイト | /virtual/<username>/public_html/<subdomainname> ※<username>:ユーザー名に読み替え / <subdomainname>:サブドメイン名に読み替え |
ファイル類の移動なのでFTP等でも出来そうですが、面倒なので…ssh接続でサーバーにアクセスし、直接ファイルを操作しちゃいます。
### XREA サブドメインのディレクトリルールについて
# 次のルールでディレクトリが作成され、これがドキュメントルートとなります。
# <subdomainname> はドメイン名、私の場合 www.ushiblo.com という名前のディレクトリ。
# /virtual/<username>/public_html/<subdomainname>
### WordPress関連ファイルの移行
# MainサイトのドキュメントルートにあるWordPress関連のファイルを
# サブドメインのドキュメントルートに移動します
# ※ちなみに、Mainサイトのドキュメントルートは /virtual/<username>/public_html
cd /virtual/<username>/public_html
mv wp-includes <subdomainname>
mv wp-admin <subdomainname>
mv wp-content <subdomainname>
mv *.php <subdomainname>
mv .htaccess <subdomainname>
mv license.txt <subdomainname>
mv readme.html <subdomainname>
# ※.log や .fast-cgi-bin は、XREA関連のファイルになるのでノータッチ
httpからhttpsへのリダイレクト設定
今後、http は使用せず https のみとしたいので、次のようなリダイレクト設定を .htaccess に追記します。
# (ここから)
# httpでアクセスがあった場合のルール
RewriteCond %{HTTPS} off
# httpsに301リダイレクトをかける
RewriteRule ^(.*)$ https://www.ushiblo.com/$1 [R=301,L]
# (ここまで追記)
# ※以下はWordPress独自のリダイレクト設定になるが、これの前に記載したほうが無難
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
動作確認
これで無料SSLの設定はできたはず…ですので、動作確認をしてみます。
「https://www.ushiblo.com」にアクセスして正しく「https://www.ushiblo.com」にリダイレクトされるか…?

大丈夫そうですね。
サイト設定も触りましたが、ページの方は問題なく表示されているようです。
続いて、SSLの保護状況の確認ですが…

「この接続は保護されています」となってますので、大丈夫そうですね!
〆に、CMAN でSSLの証明書を確認してみます。

残り期間で警告出てますが、問題なさそうですね。
さいごに
というわけで、無事 https(SSL) 化できました。
WordPress 環境を https 対応するのは初めてなので、設定漏れなどありまくりそうですが、、、何か問題が出てきたら追記したいと思います。
いじょ!
コメント