目的
ElasticBeanstalkが設定してくれるドメイン (*.ap-northeast-1.elasticbeanstalk.com) を、簡単にhttps対応にしたい。
結論
自己署名証明書、ACM(AWS certificate manager)を使う
手順
openssl インストール
# Macデフォルトのopensslと、AWSドキュメントで使用されているopenssl差異があるためインストール
brew install openssl
% /usr/local/opt/openssl/bin/openssl version
OpenSSL 3.0.0 7 sep 2021 (Library: OpenSSL 3.0.0 7 sep 2021)
自己証明書とプライベートキー生成
# 東京リージョンの場合
# rsa:4096にすると、ALBに載せたときにエラーが起こるので rsa:2048
#
sudo /usr/local/opt/openssl/bin/openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout test.key >test.crt <<-EOT
JP
Tokyo-to
Nakano-ku
Example Incorporation
Example Devision
*.ap-northeast-1.elasticbeanstalk.com
contact@example.com
EOT
ACM上、インポート作業
test.crt
の
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
をCertificate bodyに、
test.key
の
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
をCertificate private keyにコピペし、Import
test.crt
の中身を見る場合
openssl x509 -in test.crt -text
test.key
の中身を見る場合
cat test.key
ElasticBeanstalkコンソール上、作業
Configuration -> Load Balancer -> Edit
Listeners -> Add Listener
作業後、apply。環境が立ち上がるまで待ち、立ち上がったら https://~のドメインでアクセスする。
その他
Macのchromeだと、 ERR_INVALID_CRT
のようなエラーが出るため、エラーページを表示した状態で thisisunsafe
とタイプする
参考