無料で使えるSSL「Let's Encrypt」が死ぬほど便利になってた
以前にも一度試した無料SSLの「Let's Encrypt」なのですが、証明書の期限が切れそうになったのと、「Let's Encrypt」自身も色々と進化しているっぽいので、再度試してみることにしました。
※以前の記事はこちら。
調べてみたところ、いつのまにやらクライアントソフトの名前が「letsencrypt」から「certbot」に変更になり、実行ファイル名も変わっていたようです。
ということで、新しいクライアントソフトを再度Gitから落としてきます。
git clone https://github.com/certbot/certbot cd certbot/
そして、以下のコマンドにて新しい証明書を発行してみます。
前回試したときはapacheを停止しないと作業出来ませんでしたが、今回はなんと「webroot」オプションによりapacheを立ち上げたままの作業が可能です。
./certbot-auto certonly --webroot -w {apacheのDocumentRoot} -d {ドメイン名}
上記実行すると、pythonやらopensslやらがyumでupdateがかかりますので終わるまでしばし待ちます。
しばらくすると、以下のようなメッセージが出て証明書の発行が完了しました。(簡単!)
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/{ドメイン名}/fullchain.pem. Your cert will expire on 2016-08-16. To obtain a new version of the certificate in the future, simply run Certbot again. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
証明書の配置される場所は前回試したときと同じ「/etc/letsencrypt/live/{ドメイン名}/」の配下のようです。
どうやら「fullchain.pem」の中に証明書と中間証明書ファイルが同梱されているようですね。
上記ファイルのパスをapacheに設定し、apache再起動をかけたところ無事にSSLが更新されていました。
期限は「2016-08-16」までとのことで、やはり90日間のようですね。
なお、次回以降SSL更新する場合は以下のコマンドだけでいいようです。(こんなに簡単でいいのか・・・)
./certbot-auto renew
上記のコマンドで期限が30日を切った証明書を判断して自動で証明書を更新してくれるのだそう。
cronとかに仕込んでおけばそれこそメンテナンスフリーでSSLの運用ができてしまいます。
こうなると既存の有料のSSLよりずっと楽・・・。
組織の存在確認が必要なSSL以外はもう完全に「Let's Encrypt」で置き換えられてしまう感じです。
特に、今まで格安のドメイン認証SSLで運用していたサーバーなんかはもう完全にこっち使った方が良いですね。
運用楽だし無料だし移行しない理由がないです。