Let's Encrypt で Ec2 で単独で動いているサービスを Https 化する

はじめに

前提として、 EC2 に passanger + nginx でサービスを動かしている。
Let’s encrypt を導入するには主に以下をやる必要があるだろう。

  1. サーバにログインして letsencrypt-auto スクリプトを使用して証明書を作成
  2. nginx に設定し、再起動
  3. 90日で切れるので、証明書の自動更新をつける

以下では、
- force SSL 的な設定は今のところ nginx などではやらない。
- クライアント側のアプリなどで対応する。

1. 証明書を作成

1
2
3
4
5
cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd /opt/letsencrypt
# ec2 のセキュリティグループで 443 を開けておく
./letsencrypt-auto certonly --standalone

2. nginx に設定し、再起動

以下をいい感じに追加する。

1
2
3
4
5
6
7
   listen 443 ssl;

   ssl_certificate /etc/letsencrypt/live/your.domain.name/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/your.domain.name/privkey.pem;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_prefer_server_ciphers on;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

3. 自動更新

su で crontab -e

1
00 05 01 * * /etc/init.d/nginx stop; /opt/letsencrypt/letsencrypt-auto certonly --standalone -d your.domain.name --renew-by-default --debug ; /etc/init.d/nginx start;

所感

https 化が簡単にできて最高な時代だなぁと思った。

参考

https://www.mitchcanter.com/lets-encrypt-ssl-amazon-aws/

このエントリーをはてなブックマークに追加