Let’s EnclyptでEC2上のWordPressをHTTPS化する

Posted by user on Wednesday, April 17, 2019

TOC

こちらを参考に

AWS Bitnami+WordpressのHTTPS化をしてみました。

certbotのインストール

$ sudo -i
$ curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
$ chmod 700 /usr/bin/certbot-auto

証明書の発行

以下コマンドで証明書発行ました。このコマンドを見つけるまでに時間がかかった。

$ cd /tmp/certbot
$ ./certbot-auto certonly --agree-tos --manual-public-ip-logging-ok --manual -d "*.somuriengineer.com" --preferred-challenges dns-01 --email yourmailaddress@mail.com --server https://acme-v02.api.letsencrypt.org/directory
参考: https://qiita.com/ariaki/items/890dd4d6e0f40cf449e9 上記コマンド実行後にDNSのTXTレコードをするようメッセージが出るので、その旨設定します。
サブドメイン 種別 内容
_acme-challenge A サーバのIPアドレス
_acme-challenge TXT 上記コマンド実行時に表示されたパラメータ
## ACME v2とは? 証明書を自動で発行して自動設定までしてくれる仕組みだそうです。
Let’s Encryptが2018年からワイルドカードに対応ACME v2とは
## バックアップを取得
$ cd /opt/bitnami/apache2/conf
$ sudo mv server.crt server.crt.backup
$ sudo mv server.key server.key.backup

シンボリックリンクを作成

$ sudo ln -s /etc/letsencrypt/live/somuriengineer.com/fullchain.pem ./server.crt
$ sudo ln -s /etc/letsencrypt/live/somuriengineer.com/privkey.pem ./server.key

権限をrootのみにする(ln先の権限をなくさないとダメっぽい(3〜4行目)

$ sudo chown root:root ./server
 $ sudo chmod 600 ./server
$ sudo chmod 600 /etc/letsencrypt/archive/somuriengineer.com/fullchain1.pem
$ sudo chmod 600 /etc/letsencrypt/archive/somuriengineer.com/privkey1.pem

Apache再起動

$ sudo /opt/bitnami/ctlscript.sh restart apache

httpへのアクセス時にhttpsへリダイレクト

$ sudo vi /opt/bitnami/apps/wordpress/conf/httpd-prefix.conf
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

証明書の自動更新設定

3ヶ月で証明書期限が切れるので、certbot-autoを使って更新する必要があります。

crontabに以下の設定をすることで自動的に更新されます。(

0 3 * * *   sudo /tmp/certbot/certbot-auto renew --post-hook "sudo service httpd restart"
ちなみに、期限前に更新しようとすると以下の通り表示され、更新ができません。
$ sudo ./certbot-auto renew --post-hook "sudo service httpd restart"
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/somuriengineer.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/somuriengineer.com/fullchain.pem expires on 2019-07-14 (skipped)
No renewals were attempted.
No hooks were run.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -