Let’s Encryptを利用して無料でブログをHTTPS化をしました

Pocket

mac_blog

たまには技術的な話を。

このブログは、さくらのVPSサーバにインストールしたCMS(WordPress)にて記事を生成しています。

LAMP環境を自分で用意したり、CMSなどの環境設定をしたりと、なかなか面倒ではありますが、勉強になります。

とはいえ基本的には初期導入時にいろいろ勉強して、ブログ環境を完了させれば、後はせいぜい(バージョンアップやセキュリティパッチの)更新系作業くらいなので、現状は特に苦労はありません。(ブログの更新自体はGUIからできますしね)

ブログの見た目の変更はちょこちょこと行ったりもしましたが、ベースとなる環境は2012年7月にさくらのVPSにブログ環境を引っ越した当初からほとんど変わっていません。

つまり、勉強したのは2012年の環境構築時のみで、今となってはすっかり設定(勉強)した内容を忘れている、というわけです。

今回は、そんな自分に喝を入れるべく、環境を少し見直していきたいと思います。というのも設定を見直すのにちょうど良い機会がやってきたのです。

  1. Google先生が、「SSL化されたWebサイトを優遇します(HTTPSはSEO的に有利にする)」とおっしゃった
  2. Let’s Encryptで誰でも信頼された証明書を無料で取得できるようになった 

このブログはSEOとか気にするようなレベルでもないので、HTTPSは必須でもないのですが、SSLはとりあえず手を動かすのにはちょうどいい題材です。ちょうど最近、机上ではありますがセキュリティ関連の勉強もしていたことですし。

ちなみに2.で「誰でも」と記載しましたが、root権限でのコマンド発行が必要だったりするので、レンタルサーバーの人は別途環境を用意する必要があるなど少し敷居が上がります。VPSの人はLet’s Encryptのユーザガイドに書いてある手順通り行えばほとんど何も考えないでもできてしまいます。

そう。 Let’s Encryptなら簡単にね。

Let’s Encryptが用意しているCertbotクライアントをインストールしてしまえば、SSL/TLSサーバ証明書の取得や設置がほぼ自動でできてしまいます。あまつさえ証明書の更新までもコマンド一つで完了します。

技術的な話を、とか冒頭に申し上げましたが、技術の進歩によって、エンドユーザはますます楽をできるようになってしまい、自分から申し上げられるような技術的観点はありませんでした。

とはいえ、すべて順調にできたわけでもないので、引っかかった点をメモしておきます。

自分の環境(apache)ではhttpd.confに<VirtualHost *:80>の設定を記述し、ssl.confに<VirtualHost *:443>の設定を記述しています。なので、httpd.confにはRewriteRuleで”http”でアクセスがあった場合に”https”にリダイレクトする設定を記述して、ssl.confには証明書の場所やDocumentRootの設定を記述しました。

しかし、この設定では、ブログのTOPページはHTTPSで無事に通信できるようになったのですが、個別のエントリーページが表示されなくなってしまいました。もちろんWordPress側の設定はすべてhttpsに変更しています。

結果的には以下をssl.confの<VirtualHost *:443>内に追記して、表示ができるようになりました。

ErrorDocument 404 /index.php?error=404
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

https側の設定にもhttpsがオフの場合のルールを書くのが何とも不思議な感じもしますが、こちらの設定が優先されるのですね。

あともう一つ、ブログ内の画像のURLがhttpだとすると

Mixed Content
The site includes HTTP resources.

とセキュアではないと言われてしまいます。Amazonから引用している画像はほとんどこれに該当しますが、すべて修正するのは手間がかかりそうですのでしばらく放置の方向です。

というわけで一応、本ブログのHTTPS化は完了しました。久々にコマンドラインでの作業をしましたが、指がコマンドを忘れていて作業に時間がかかりました。でも丁寧に解説しているサイトがたくさんあって、ちょっと調べればほとんどのことは書いてあり、便利な世の中になったと思います。

でも意味もわからずにコピペだけしてしまうと、とんでもない間違いをしてしまうかもしれませんし、何より勉強にはなりません。あくまで参考レベルにしましょうとくらいは書いておきます。

そうそう、やっぱり、検索順位がちょっとでも上がると嬉しいです。

Pocket