無償のDV SSL証明書「Let's Encrypt」。
証明書の有効期間が90日間なので、3ヶ月に一度は更新作業が必要になります。
なので、1〜2ヶ月程度で、証明書の更新を行います。
当然、バッチで処理したいですよね?
実はAmazon EC2とLet's Encryptの関係性はちょっと微妙です。
というより、Amazon Linux上では正式にLet's Encryptが対応していないので、
設定やコマンドにもいくつか癖があります。
自動更新を月一で検証
Let's Encryptは同一の証明書を頻繁に更新すると使えなくなってしまうので、
更新の検証は慎重に行う必要があります。
よって毎月1日の3時にcronで更新作業を行うようバッチを組みます。
実は先月の1日、うまく行ってませんでした。。。
証明書の更新に失敗し、挙句の果てにはapacheが止まっているという始末。
こんなんではエンドさんには提案できません。
エラー内容を確認して、設定をチューニングして、いよいよ7/1。
朝一でiPhoneからWebサーバーを確認。
お?apache起動してるぞ!
cronが送ってくれるメールを確認。
「うまくいった!!!」
設定の関係上、apacheを停止してから証明書を更新し、
更新が完了してから、apacheを起動する運用にしています。
Stopping httpd: [ OK ]
Upgrading certbot-auto 0.7.0 to 0.8.1...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/****.com.conf
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/****.com/fullchain.pem
-------------------------------------------------------------------------------
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/****.com/fullchain.pem (success)
Starting httpd: [ OK ]
一応、来月頭も確認して問題ないようであれば、
いよいよLet's Encryptの本格導入ですかね?
今、Let's Encryptを始め、SSLの流れが本当に早いです。
各ホスティング会社もこぞって、無償SSLの導入が進んでいます。
なんか楽しいですね。
(山下 史彦)