Let’s Encryptでhttps化する

新しくなった作成用コマンド

前もlet’s encryptで無料でhttps化する記事を書いたけど、
いろいろ整ってきたみたいでgitからソースをダウンロードしたりしなくて良くなったようなので紹介

コマンドのインストール

ここに書いてある手順通りにリポジトリの追加とnginx用のプラグインをインストール
https://certbot.eff.org

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

証明書発行

nginxのオプションで起動するとどうやらnginxの設定ファイルから利用しているサーバ名からどれを対象にする?と聞いてくれる模様。

$ sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: xxxxx.info
2: www.xxxxx.info

www.laddy.infoを選択

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/www.xxxxx.info/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/www.xxxxx.info/privkey.pem
   Your cert will expire on 2018-02-13. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - 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

こんな感じで作ったからな!!を頂きました。
Your cert will expire on 2018-02-13
証明書は三ヶ月の期限のようなので certbot reenw のコマンド打って更新してねとのこと。

しかも勝手にnginxの設定ファイル内に証明書とkeyファイルの位置のパスを追記してくれているので、

$ sudo service nginx restart

これだけでhttps化ができました。

renewコマンドを打ってみる

$ sudo certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/www.xxxxx.info.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

まだはええよと言われてスキップされました。
このドキュメントを覗くと
https://letsencrypt.jp/docs/using.html#renew-subcommand
残り日数が30日未満のときに更新されるようです。

Cronで自動更新を設定

cronに入れて残り期間が過ぎないうちに自動で実行するようにする。

# Letsencrypt auto renew
0 6 * * 4 root  /usr/bin/certbot renew && /usr/sbin/service reload nginx