🛠️
AWS EC2 (Amazon Linux 2) に Certbot で SSL/TLS 対応
Amazon Linux 2 に Certbot を導入
まず AWS 公式のドキュメント 👇 は情報が古くてダメです。
Certificate Automation: Amazon Linux 2 での Let's Encrypt と Certbot の使用
ServerFault の以下の回答が解決の糸口になりました。
How to install Certbot on Amazon Linux EC2
EC2 インスタンスに入って
$ sudo amazon-linux-extras install -y epel
$ sudo yum update
$ sudo yum install -y certbot python2-certbot-apache
$ sudo certbot
ここで、メールアドレスを登録したり起動中のバーチャルホストのドメインを選択したりしてpem
の生成とhttpd.conf
およびhttpd-le-ssl.conf
の編集を自動でやってもらう。
httpd.conf
を確認してバーチャルホストの設定内にRewriteEngine
, RewriteCond
, RewriteRule
が追加されていることを確認。
httpd.confの例
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /home/ec2-user/node_server/public
ServerName hoge.com
ProxyPass / http://localhost:3003/
ProxyPassReverse / http:/localhost:3003/
RewriteEngine on
RewriteCond %{SERVER_NAME} =hoge.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Include /etc/httpd/conf/httpd-le-ssl.conf
httpd-le-ssl.confの例
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /home/ec2-user/node_server/public
ServerName hoge.com
ProxyPass / http://localhost:3003/
ProxyPassReverse / http:/localhost:3003/
SSLCertificateFile /etc/letsencrypt/live/hoge.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hoge.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
確認ができたら Apache を再起動
sudo systemctl httpd restart
Discussion