てっくらのーと
てっくらのーとは、触れた技術のメモと日常の記録が少し合わさった個人のサイトです。
てっくらのーとは、触れた技術のメモと日常の記録が少し合わさった個人のサイトです。
Let's Encrypt の証明書を更新する
Let’s Encrypt の証明書更新を行います。 さっさとやらないと、とか言っといてすぐ腰が重くなる。
手動更新
試しに手動更新をしてみる。
ubuntu@localhost:~$ sudo letsencrypt renew
Processing /etc/letsencrypt/renewal/mkr-note.net.conf
The following certs are not due for renewal yet:
/etc/letsencrypt/live/mkr-note.net/fullchain.pem (skipped)
No renewals were attempted.
更新が必要なタイミングにならないと、コマンドは蹴られないけど更新がスキップされる。
--force-renewal
オプションをつけると強制的に更新を行うのでしてみた。
ubuntu@localhost:~$ sudo letsencrypt renew --force-renewal
Processing /etc/letsencrypt/renewal/mkr-note.net.conf
new certificate deployed without reload, fullchain is /etc/letsencrypt/live/mkr-note.net/fullchain.pem
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/mkr-note.net/fullchain.pem (success)
よかった。
有効期限
https://letsencrypt.jp/blog/2015-11-09.html
有効期間は90日で60日毎の更新がオススメされている。60日は短いだろうけど世の中そんなものだからちゃんと自動化せーよってことね。
自動更新
んじゃ自動更新。cron でコマンドを叩けばいいのだけど、コンテナの中のnginx(httpサーバ)も再起動しなければならない。docker-compose で出来ることは知ってるけど、それがベストなのかっつーとよくわからない。
- $ sudo service nginx stop
- $ sudo letsencrypt renew
- $ sudo service nginx start
を
- $ sudo letsencrypt renew
- $ sudo docker-compose restart コンテナサービス名
にして cron に入れる。/etc/cron.d/(適当ファイル名) ね。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
COMPOSE_FILE=(docker-compose.ymlの指定)
MAILTO=(メールアドレス)
0 0 1 */2 * root letsencrypt renew --force-renewal; docker-compose restart proxy >> /tmp/log.log
2カ月毎の1日にcron起動するように。COMPOSE_FILE
を指定すると、docker-compose
がどこでも気兼ねなく打てます。
メールアドレスって書いているけど、MTA(postfix)入れてないのでメールは出ない。install するだけなのかな。メールを受け取るのが主目的ではなくて、スクリプト書いて(1人)Slack通知でもいいし、何某かの通知を得て確認したいだけ。まあ次回かなこれは。。
© てっくらのーと/mkr-note 2024