こちらの記事の続編です。 VueとSpringで作成したプロジェクトの構築手順の備忘録。
備忘録のため、詳細な説明を省略している部分があります。 ウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組み。
http通信のままだと、パスワードなどの認証情報が平文のままネットワーク上を流れてしまうため、情報漏洩のリスクが常に付きまといます。
ただし、SSL化していても、プロキシサーバーなどを用いた中間者攻撃では盗聴・改ざんが出来るため注意は必要です。。。
ELBに割り当てているセキュリティグループのインバウンドルールを80(HTTPのポート)から443(HTTPSのポート)に変更します https通信でURLにアクセスし、南京錠のアイコンが表示されていればOKです(一応HTTP通信を試してみるとポートを開いていないのでアクセスできません)
つづいて、ALBとEC2間の通信もHTTPS化していきます。 EC2インスタンスに割り当てられているセキュリティグループのインバウンドルールをHTTPS443ポートに変更
statusがhealthyであることを確認し、再度URLにアクセスしてみます 502エラーが出ているので対処します リスナーに80番ポートを追加して、ターゲットグループに先ほどまでHTTP通信をおこなっていたインスタンスを選択。 EC2インスタンスに80番ポートを開けて、アクセスしてみます。 502エラーは返されず、画面が表示されました。なのでHTTPS通信固有の問題のようです。 ALBのモニタリングタブを確認すると、ログにエラーが出力されているため、ALBがエラーを返却していることが分かります。
EC2 インスタンスとロードバランサー間の SSL 接続を有効にする はじめる - Let's Encrypt - フリーな SSL/TLS 証明書
チュートリアル: Amazon Linux 2 に SSL/TLS を設定する - Amazon Elastic Compute Cloud <ここの続きの部分ですが、EC2-ELB間の通信はプライベートIPアドレスにて行われるという点から通信をSSL化する必要性がそもそもあまりないということから実装は行わないこととしました。EC2-ELB間の通信をSSL化するためには第三者制の証明書が必要だいう学びなどがあったのでそのまま記事としては残しますが、悪しからず。。。> Application Load Balancerで設定する4種類のポート番号の意味を理解しよう | DevelopersIOまえがき
目的
前提
環境
やること
SSL(Secure Socket Layer)とは
クライアントーALB間のSSL化
ALB-EC2間のSSL化
第三者制SSL証明書の取得
参考