Let’s Encryptの更新処理の自動化を行う(nginx使用)
コラビットでは一部のプロジェクトでstaging環境でSSLを使用するため Let's Encrypt
を使用しています。
Let’s Encryptとは
Let’s Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化することにより、TLS や HTTPS(TLSプロトコルによって提供されるセキュアな接続の上でのHTTP通信)を普及させることを目的としているプロジェクトです。2016年4月12日 に正式サービスが開始されました。
引用元: Let’s Encrypt 総合ポータル
つまりは、無料で使えるSSLです!なんてありがたいプロジェクトなんでしょう。
無料で使えますが、いくつか不便な点もあります。
- rate 使用制限がある(ドメインは週に20登録できて、ドメインごとに100の証明書。つまり週に最大2000の制限)
- 有効期限が90日間(60日ごとに更新することがすすめられている)
Rate Limits
https://letsencrypt.org/docs/rate-limits/
しかし商用でも無料で使えるのは強いです。利用しない手はないでしょう。
インストール方法や使い方
公式サイトを見るのが早いです!英語ですがわかりやすいです。
記事の内容としては、更新するところなのでこちらはリンクだけ貼っておきます。
https://www.linode.com/docs/security/ssl/install-lets-encrypt-to-create-ssl-certificates/
証明書の更新方法
まず、下記のコマンドで証明書の更新ができます。
cd letsencrypt/./certbot-auto renew
更新処理を記述するシェルスクリプトを書きます。
(一旦homeディレクトリに移動してますがどこでも構いません。)
cd ~vim renew.sh
中身は下記のように記述してください。
nginxのrestartはstartとstopを分けて書いてください。そうしないと失敗します。
#!/bin/sh# nginxをstop(stopしないと更新に失敗する)sudo service nginx stop# 証明書を更新sudo ./certbot-auto renew# 再スタートsudo service nginx start
次にcronの設定を行います。
crontab -e
内容は下記の通りです。pathは適宜に変更してください。
# 毎月1日の朝4時に実行する00 4 1 * * /bin/sh /home/someone/letoencrypt/renew.sh
以上で設定は完了です。