nginx
AWS
EC2

AWS EC2 で Let's Encrypt

More than 1 year has passed since last update.

注意

Let's encryptのクライアントがCertbotクライアントに更新されています。

使い方はさほど変わってないようですが新たに利用する人は最新の情報をご確認の上ご利用ください。


AWS EC2上のnginxLet's Encryptの証明書を取得、更新するための手順をまとめました。

nginxのセットアップ手順などは省略しております。


Let's encryptクライアントをインストールする

$ sudo git clone https://github.com/letsencrypt/letsencrypt /usr/local/letsencrypt

$ sudo /usr/local/letsencrypt/letsencrypt-auto --help --debug

Amazon Linux はまだ正式な取扱ではないため--debugオプションが必要になります。


証明書を取得する

事前にAWSのセキュリティグループで80ポートへのインバウンドを有効にしておき、証明書取得後に不要であれば無効に戻します。

$ sudo /usr/local/letsencrypt/letsencrypt-auto certonly --standalone -d example.com --agree-tos

ドメインは適宜変更してください。


証明書の自動更新を設定する

$ sudo vi /etc/cron.daily/letsencrypt

$ sudo chmod +x /etc/cron.daily/letsencrypt

以下は /etc/cron.daily/letsencrypt の内容です。

DOMAINWEBROOTなどは適宜変更してください。

今回はWebサーバにnginxを利用しているためservice nginx reloadしています。Apacheなどをご利用の方は適宜変更してください。

#!/bin/sh

LE_HOME=/usr/local/letsencrypt
WEBROOT=/usr/share/nginx/html
DOMAIN=example.com
LOG=/var/log/letsencrypt/renew.log

$LE_HOME/letsencrypt-auto certonly --debug --non-interactive --keep-until-expiring --webroot -w $WEBROOT -d $DOMAIN >> $LOG 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
echo Automated renewal failed:
exit 1
fi
service nginx reload