EC2に作ったNginxにLet's Encryptを導入する
オレオレ証明からLet's Encriptに変更する
前提
yakisaba.hatenablog.jp の通りにサーバーが立っている事。
注意
EC2のパブリックDNSだと登録できないそう。
適当にドメインを取ってみて試してみる
ドメインを取得して、Route53にAレコードを追加する
- お名前.comとかでDNSを取得する。
- EC2のダッシュボードを開き、左側にあるElastic IPを選択する。
- 新しいIPの割り当てを選択して、IPを取得する。
- 作成したものを右クリックして、アドレスの割り当てを選択して、EC2インスタンスに割り当てる。
- 作成されたIPアドレスをメモしておく。
- Route53を開き、Hosted Zoneを開く。
- create hosted zoneを選択して、Domain Nameに作成したドメインをいれて、作成をする。
- 作成したゾーンを選択してgo to recordを選ぶ。
- create recordを選択して、下のように設定して作成する。
- NSレコードの内容をコピーして、取得したドメインのネームサーバーに設定する。
- nslookup www.ドメイン でIPアドレスと紐づいているかチェックする。
必要なツールをインストール
# gitのインストール $ sudo yum install git # Let's Encryptのツールをインストール $ git clone https://github.com/certbot/certbot ~/certbot $ cd ~/certbot
証明書の発行
# ドメイン名、メアドは取得したものを使う $ sudo ./certbot-auto certonly --webroot -w ドキュメントルート -d 取得したドメイン名 -m 自身のメールアドレス --debug
証明書が出来上がるので、それを /etc/nginx/conf.d/default.conf に登録する。
/etc/nginx/conf.d/default.conf
ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
確認
nginxを再起動して接続してみて、https + http2で繋がっていればOK
継続的に取得するようにする
# 毎月1日の1時に強制的に更新する。 0 1 1 * * root /nome/ec2-user/certbot/certbot-auto renew --force-renewal && service nginx restart