Amazon Lightsailで建てたWordPressサイトをSSL化

どうも、
だにしです。

既に色んなブログでやってるので、これまた私の備忘録に。

今回調べて初めて知ったのですが、
Let’s Encryptっていう非営利団体のサービスを使えば無償でSSL化できるんですね!

早速やってみよう

SSHでインスタンスに接続してー
# githubからLet's Encryptをクローン
git clone https://github.com/letsencrypt/letsencrypt
Cloning into 'letsencrypt'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 63542 (delta 0), reused 2 (delta 0), pack-reused 63538
Receiving objects: 100% (63542/63542), 20.91 MiB | 4.67 MiB/s, done.
Resolving deltas: 100% (46280/46280), done.
Checking connectivity... done.

# 証明書のインストール
cd letsencrypt/
./letsencrypt-auto
./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d danishi.net

# 証明書がインストールされる
./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d www.blog.danishi.net

# 証明書のインストール場所
sudo ls -l /etc/letsencrypt/archive/www.blog.danishi.net

# 証明書をApacheに配置
sudo cp /etc/letsencrypt/live/www.blog.danishi.net/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo cp /etc/letsencrypt/live/www.blog.danishi.net/privkey.pem /opt/bitnami/apache2/conf/server.key

# Apacheを再起動
sudo /opt/bitnami/ctlscript.sh restart apache
httpsでアクセスできました! このままだと、httpsでアクセスしたときにサイトに遷移できないのでリダイレクトの設定を「/opt/bitnami/apps/wordpress/conf/httpsd-prefix.conf」に書き込みます。
ewriteEngine On
RewriteCond "%{https_HOST}" ^ec2-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})\..*\.amazonaws.com(:[0-9]*)?$
RewriteRule "^/?(.*)" "%{REQUEST_SCHEME}://%1.%2.%3.%4%5/\" [L,R=302,NE]
# 下記を追加
RewriteCond %{https} off
RewriteRule ^(.*)$ https://%{https_HOST}%{REQUEST_URI} [R=301,L]

# Apacheを再起動
sudo /opt/bitnami/ctlscript.sh restart apache
無事今までのリンクが生きるようになりました。 証明書の期限は3か月しかもたないらしいので自動更新のCronを設定します。
# 毎月1日に自動更新
1 1 1 * * /home/bitnami/letsencrypt/letsencrypt-auto renew
2 1 1 * * cp /etc/letsencrypt/live/www.blog.danishi.net/privkey.pem /opt/bitnami/apache2/conf/server.key
3 1 1 * * cp /etc/letsencrypt/live/www.blog.danishi.net/fullchain.pem /opt/bitnami/apache2/conf/server.crt
4 1 1 * * /opt/bitnami/ctlscript.sh restart apache
ちゃんと動くかは1か月後確認かね。

これにて完了!

※追記
WordPressの管理画面の方が対応できてなかったので、下記記事参考に設定しました。

WordPressサイトアドレスをhttpsに変更する(Really Simple SSL)