Let's Encrypt を自動更新するためのNginxの設定
example.com example.jpの2つのドメインをLet's Encrypt でtls 化しているとする。
ドメイン所有の確認の理由からPort80に設定を入れる。
nginx
Port 80 の設定
server { listen 80; server_name example.com example.jp; location '/.well-known/acme-challenge' { default_type "text/plain"; root /tmp/letsencrypt-auto; } location / { return 301 https://$server_name$request_uri; } }
自動更新 スクリプト
#!/bin/bash DOMAINS="-d example.com -d example.jp" DIR=/tmp/letsencrypt-auto LETSENCRYPT="/PATH/TO/YOUR/letsencrypt-auto" [ -d $DIR ] || mkdir -p $DIR $LETSENCRYPT certonly --server https://acme-v01.api.letsencrypt.org/directory -a webroot --webroot-path=$DIR $DOMAINS --force-renew && service nginx reload
あとはこのスクリプトをcronなどに仕込む。
One-line certificate generation/renews with Letsencrypt and nginx · GitHub