AmazonLinux2・nginxでLet’s Encryptを利用して無料でhttps通信に対応する方法

背景

無料でSSL証明書を取得してhttps通信に対応できるLet’s Encrypt。AWS公式チュートリアルにapacheでの導入方法が記載されているが、nginxでの導入方法の記載がなかったので備忘録として記載。

公式に記載のあるsudo yum install -y certbot python2-certbot-apacheyum install -y certbot python2-certbot-nginxに変更する必要がある。

certbotインストール

# ホームディレクトリに移動
cd
# EPEL をダウンロード
sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
# リポジトリパッケージをインストール
sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
# EPELの有効化
sudo yum-config-manager --enable epel*
# 確認
sudo yum repolist all
# Certbot パッケージと依存関係をインストール
yum install -y certbot python2-certbot-nginx
# 実行
sudo certbot

証明書の自動更新

cetbotの証明書の有効期限は90日なので自動で更新する設定をcronに記載
PATHを定義しないとnginxを呼び出せないので注意

// PATHの確認
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

cronに記載する

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

19 4 * * * root certbot renew --no-self-upgrade

参考