Let's encrypt!! EC2 (Amazon Linux 2) Nginx 自動更新はできてない。

環境

手順

参考 Let's EncryptでSSLの設定〜自動更新 - Socapnw

ダウンロード

$ sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
$ sudo chmod 700 /usr/bin/certbot-auto

amazon linux2に対応する

このままコマンド叩くと・・エラーが出る。

$ ./certbot-auto'
 
Sorry, I don't know how to bootstrap Certbot on your operating system!

You will need to install OS dependencies, configure virtualenv, and run pip install manually.
Please see https://letsencrypt.readthedocs.org/en/latest/contributing.html#prerequisites
for more info.

以下を参考に実行ファイルを編集する。 Amazon Linux 2でLet’s Encryptが使えない – RE:ENGINES

$ sudo cp /usr/bin/certbot-auto /usr/bin/certbot-auto.bak
$ sudo vi /usr/bin/certbot-auto

$ sudo diff /usr/bin/certbot-auto /usr/bin/certbot-auto.bak
843,844c843
< elif grep -i "Amazon Linux" /etc/issue > /dev/null 2>&1 || \
<     grep 'cpe:.*:amazon_linux:2' /etc/os-release > /dev/null 2>&1; then
---
> elif [ -f /etc/issue ] && grep -iq "Amazon Linux" /etc/issue ; then

WEBサーバを止める

$ sudo systemctl stop nginx

※WEBサーバを止めないLet's encryptのやり方(Rails対応)はこれじゃないかな。 Let's EncryptをHerokuにあるRailsアプリに適用する(2016/9月版) - Qiita

Certbotで証明書を発行する

ドメインは各自のを設定してください。

sudo certbot-auto certonly \
  --standalone \
  -d domain.com

エラーが出ました。amazon linuxは検証段階だから--debugをつけろと。

FATAL: Amazon Linux support is very experimental at present...
if you would like to work on improving it, please ensure you have backups
and then run this script again with the --debug flag!
Alternatively, you can install OS dependencies yourself and run this script
again with --no-bootstrap.

再チャレンジ。

sudo certbot-auto certonly \
  --debug \
  --standalone \
  -d domain.com

メールアドレスの入力と規約に同意するか否かを聞かれます。 ※このオプションつければ、聞かれなくなってたのかな。

-m mail@example.com
--agree-tos

nginxに証明書と鍵の設定

/etc/letsencrypt/live/ 以下に証明書と鍵が発行されるのでこれをnginxに設定。