Let’s Encryptで無料HTTPS(SSL/TLS)化する方法 | Ubuntu と WordPress

Let’s Encrypt で無料で SSL/TLS サーバ証明書を取得

Webの通信を暗号化してセキュアにデータをやりとりするために、HTTPS (Hypertext Transfer Protocol Secure)を使用するのが主流になっている。

特に、Googleが検索エンジンの検索結果を決める際の指標に、「HTTPS化されているかを考慮する」と発表があった後、クレジットカード等の情報をやり取りしていない個人ブログ等でも、HTTPS化する動きが活発になっている。

HTTPS化するには、SSL/TLS サーバ証明書が必要となり、これまでこの費用がかかるため、導入を見送る人も多かったと思う。

そんな中、Let’s Encrypt という、無料でSSL/TLSサーバ証明書を発行してくれるサービスが提供された。

Let’s Encrypt は、非営利団体の ISRG (Internet Security Research Group)が提供しており、ISRGは、シスコ(Cisco Systems)、Akamai、電子フロンティア財団(Electronic Frontier Foundation)、モジラ財団(Mozilla Foundation)などの大手企業・団体が、スポンサーとして支援している、ちゃんとした組織だ。

 

Ubuntu 16.04 で Let’s Encrypt サーバ証明書 取得

Ubuntu 16.04 であれば、apt-get install して、letsencrypt コマンドを投入し、コマンドライン上に表示される指示に従って進めば、簡単にSSL/TLS サーバ証明書をGETできる。

 

まずは必要な letsencryptファイル群をインストールする。

$ sudo apt-get install python-letsencrypt-apache

 

次に、apacheように、SSL/TLSサーバ証明書を取得する。

$ sudo letsencrypt --apache

※Web上の情報では、「certbot」というコマンドで行う文献をよく目にするが、Ubuntu の場合は letsencrypt コマンドで実施することに注意。

 

対話形式でドメインの登録等を行う画面が出現する。

まず、「まだ設定がなされていないので、これからマニュアルで設定していくぜ?」と聞かれるので、「Yes」を押す。

 

 

次に、SSL/TLS証明書を取得したい対象のドメイン名を記載する。

 

「そろそろSSL/TLS証明書の期限が切れるぜ?」等のメールの通知先を記載する。

 

「規約に同意してね」と言われるので、「Agree」と答える。

 

 

Easy:HTTP と HTTPS の両方のアクセスをOKする
Secure:HTTPS のみの通信にする

上記どっちにする?と聞かれる。

もう既に、HTTPS に完全に移行する準備ができている場合は、「Secure」を選んで問題ない。
私は、段階的にHTTP→HTTPSに移行するつもりなので、「Easy」を選択した。

 

「おめでとう!」と言われるので「OK」と答える。

 

これだけで、SSL/TLS証明書の取得が完了する。

なんと簡単なのだ。

#その昔、Verisign から10万円くらいする証明書を購入するときは、もっともっとたいへんだったのに

 

 

これで、Apache の設定も実は完了している。
念のため、Apache の設定が入ったか、確認しておくと良い。

 

$ sudo vi /etc/apache2/sites-available/NAME_OF_DOMAIN_le-ssl.conf

というファイルができており、

SSLCertificateFile /etc/letsencrypt/live/www.letsencrypt.work/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.letsencrypt.work/privkey.pem

という内容等が記載されていればOKだ。

 

Let’s Encrypt サーバ証明書 自動更新

Let’s Encrypt サーバ証明書は3ヶ月で失効する。

そのため、自動更新を行う必要がある。

cron で月に1度更新するようにしておくと良い。

$ sudo vi /etc/cron.monthly/letsencrypt_renew.sh

#!/bin/bash
letsencrypt renew
service apache2 reload

 

実行権限を与える。

$ sudo chmod +x /etc/cron.monthly/letsencrypt_renew.sh

 

 

WordPress を HTTPS化

WordPressのHTTPS化は様々な方法があるが、今回はプラグインを使った簡単な方法で対応した。

WordPressの管理画面から、「プラグイン」→「新規追加」→「Really Simple SSL」を検索→「インストール」→「有効化」で完了する。

 

https://ドメイン名 でアクセスしてみて、無事にサイトが見れれば完了だ。

 

うまくいっていれば、「.htaccess」に、以下を書いて、http の際のページリンク等の情報を引き継ぐために、「301リダイレクト」のルールを記載しておく。

この301リダイレクトの設定をしておかないと、「http://ドメイン名」で、せっかく被リンクを稼いでページランクを高めていたとしても、「https://ドメイン名」になることで、ページランクを引き継げなくなってしまう。

 

そのために、Really Simple SSLのプラグイン設定の「セッティング」を開き、「Enable WordPress 301 redirection to SSL」のチェックを外し、.htaccess に以下を記述する。

$ vi .htaccess

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

 

 

この他にも、以下の対応が必要になるので、忘れずに対応しておきたい。

  • Google Analytics の再登録(httpのサイト→httpsのサイト)
  • Google Search Console の再登録(httpsのサイトを新規で登録する必要あり)

コメント