有料のレンタルサーバーを借りてみた その10 ~https(SSL)を導入~

2020年10月11日サーバ借りてみたシリーズSSL,XREA,ワードプレスサーバ借りてみたシリーズ,SSL,XREA,ワードプレス

今回は、このブログサイトに 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設定マニュアル

公式の設定マニュアルはこちら。これを参考に設定してみます。

https://www.xrea.com/support/manual/security/free/

XREAダッシュボードを開く

無料SSLの設定は XREA のダッシュボードから行えます。

「サイト設定」→「該当のサイト」を選び、「サイト設定の変更」から設定ページを開けます。

XREAダッシュボード - サイト設定の変更
XREAダッシュボード – サイト設定の変更

無料SSLを有効化しようとしたが選択できない

ここで問題が発生。

無料SSLの選択ができませんでした。(´・ω・`;)

XREAダッシュボード - SSL設定
XREAダッシュボード – SSL設定

調べたところ、作成済みサイトの無料SSL化は単純にできないようです。

サイト一覧を見ると、サイト名に Main と Sub という区分がありますが、無料SSLを使用するには、この区分を Sub (サブドメイン)にする必要があるようです。

参考:https://help.value-domain.com/f_domain/index.cgi?read=205&ukey=0

サイトのMainとSub
サイトのMainとSub

単純にはできないというだけで、変更する方法はありますので、次のやり方で進めてみます。

  1. サイト設定からドメインの紐付けを解除
  2. 無料SSLを有効にした新規サイトを作成
  3. WordPress関連ファイルの移行
  4. httpからhttpsへのリダイレクト設定
  5. 動作確認

というわけで、少し作業が追加されました。。。

サイト設定からドメインの紐付けを解除

今まで Main としていたサイトに、未使用のドメインを再割り当てします。

私の場合、これまで Main サイトには「www.ushiblo.com」を割り当てていましたが、XREAから割り振られている「ushiblo.sxxxx.xrea.com」に変更することにします。

※この操作をするとドメインを再割り当てするまでサイトが公開されなくなりますので十分注意が必要です。

ドメインの割当を解除
ドメインの割当を解除

無料SSLを有効にした新規サイトを作成

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

サイト設定の新規作成
サイト設定の新規作成

先程紐付けを解除したドメイン名を改めて選択し、無料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の保護状況の確認ですが…

SSLによる保護状況の確認
SSLによる保護状況の確認

「この接続は保護されています」となってますので、大丈夫そうですね!

〆に、CMAN でSSLの証明書を確認してみます。

SSL証明書の確認
SSL証明書の確認

残り期間で警告出てますが、問題なさそうですね。

さいごに

というわけで、無事 https(SSL) 化できました。

WordPress 環境を https 対応するのは初めてなので、設定漏れなどありまくりそうですが、、、何か問題が出てきたら追記したいと思います。

いじょ!