無償の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の導入が進んでいます。

なんか楽しいですね。

(山下 史彦)