Let's Encrypt で証明書を自動更新する方法
certbotをclone
$ cd /usr/local/ $ git clone https://github.com/certbot/certbot
Let's Encrypt クライアントが依存するパッケージをインストール
$ cd certbot/ $ ./certbot-auto -n
証明書の取得
$ ./certbot-auto certonly --webroot \ -w /var/www/example -d example.com \ -m sample@example.com \ --agree-tos -n
オプション
certonly
証明書の取得のみを行います。デフォルト値は「run」で、証明書の取得とApache等のSSL設定もやってくれるそうですが、まだうまく動かないことが多いようです。
--webroot
ApacheなどWEBサーバのドキュメントルートに、認証用ファイルを生成します。ドキュメントルート直下に「.well-known/」というディレクトリが作成され、この中に生成されているようです。証明書の取得が終われば、この認証用ファイルは削除されます。稼働しているWEBサーバがない場合(メールサーバなど)は --standalone を指定すると良いでしょう。
-w
ドキュメントルートのパスを指定します。Apacheの場合は、DocumentRoot で指定しているパスです。
-d
証明書を取得するドメイン名を指定します。Apacheの場合は、ServerName で指定しているドメイン名です。
-m
ご自分のメールアドレスを指定します。なにかトラブルがあった場合などに Let's Encrypt との連絡用に使用されます。また、証明書の更新期限が近づくと、ここで指定したメールアドレス宛に、お知らせメールが届きます。
--agree-tos
Let's Encrypt の利用規約に同意します。事前に利用規約「https://letsencrypt.org/repository/」を確認しておきましょう。
-n
--non-interactive の省略オプションです。対話メッセージの表示や入力を求められないようにできます。
自動更新をする
$crontab -e 00 05 01 * * /usr/local/certbot/certbot-auto renew --force-renewal && nginx -s reload