TOC
こちらを参考に
AWS Bitnami+WordpressのHTTPS化をしてみました。
Contents
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 | 上記コマンド実行時に表示されたパラメータ |
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.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -