はじめに
Let’s encryptからSSL/TLS証明書を取得したので、本サイト(Apache httpdを使用しています。)のssl.confの設定のうち、SSLCertificateFileとSSLCertficateKeyFileを以下のように設定して、本サイトへの接続を常時HTTPS接続にするように設定してみました。なお、パスのうち先頭の部分については実際の設定とは異なりますので、その点は悪しからずご了承ください。
やったこと
WordPressに対する設定
幸い、この記事が(公開後に加筆・修正を行っているものの、)本Webサイトの記念すべき1件目の記事で、本記事とWordPressの初期設定時に書き込まれるデータ以外にはデータが書き込まれていないので、設定自体は以下の手順を実行するだけでad-hocな作業を行うことなく比較的スムーズにできました。
- WordPressの管理画面から「一般設定」メニューを選択します。
- WordPressアドレスとサイトアドレスの先頭部分を “https://” に変更します。
HTTPでのリクエストのHTTPSでのリダイレクト
次にApache httpdの設定を行いました。以下のコードのように、HTTPでのリクエストを受けたら、HTTPSにリダイレクトする設定を追加し、Apache httpdを再起動して設定の追加を反映させます。
なお、4,5行目の設定はHTTP/1.1以外による接続を拒否するためのものであり、後から追加したものです。詳しくはこちらをご覧ください。
<IfModule mod_rewrite.c> | |
RewriteEngine on | |
# HTTP/1.1以外のプロトコルでの接続を拒否する。 | |
RewriteCond %{THE_REQUEST} HTTP/(1\.0|0\.[0-9])$ | |
RewriteRule ^(.*)$ - [R=403,L] | |
# HTTPによるリクエストをHTTPSにリダイレクトする。 | |
RewriteCond %{HTTPS} off | |
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] | |
</IfModule> |
ハマりどころ。
しかしながら、すでに記事がたくさん書き込まれているサイトだと、記事が格納されているデータベースのバックアップを取った後、 Really Simple SSLのようなプラグインの助けを借りて、”http://”を”https:// “へ一気に変換した上で、さらに変換できていないところがないかどうか記事を1件ずつ確認するといった作業が必要なのかもしれません。
もしかするとHTTP接続のままになっている部分が残っているかもしれませんが、気づき次第修正していきます。
本記事は以上です。