AWSでWEBサーバーをたてよう(4)ALB+自己証明書 編
『AWSでWEBサーバーを作る』の4回目
ALBと自己証明書を使って HTTPS 通信のWEBサイトを作ります。
構成図
今回作成するインフラの構成図です。
今回はWEBサーバーまで作ってあるとして、ALBの作り方を紹介します。
参考サイト
こちらのサイトを参考にさせて頂きました。というかそのままです。
作成の手順
オレオレ証明書(自己証明書)を作る
Linux環境で自己証明書を作ります。今回は、EC2インスタンス(WEBサーバー)がLinuxなので、そこで自己証明書を作りました。
openssl genrsa 2048 > private-key.pem
openssl req -new -key private-key.pem > private-key.csr
openssl x509 -req -signkey private-key.pem < private-key.csr > private-key.crt
ALBを作る
HTTPS通信のALBを構築します。
AWSコンソールを開き、EC2を選択します。
左側の『ロードバランサー』をクリックし、『ロードバランサーの作成』ボタンをクリックします。
ALB(Application Load Balancer)の作成ボタンをクリックします。
ALBを設定していきます。
リスナーをHTTPSにして、WEBサーバーのEC2インスタンスがあるVPCとサブネットワークを設定します。
ここで、さきほど作成した自己証明書を設定します。
セキュリティグループを設定します。
ターゲットグループを設定します。
用意したWEBサーバーは、8082番ポートを使うよう設定しています。
また、http://{IPアドレス}:8082/index.html のサイトをヘルスチェック用に作成しています。
作成したターゲットグループにWEBサーバーのEC2インスタンスを設定します。
『作成』ボタンをクリックします。
作成に成功すると以下のような画面になります。
作成に成功しても、まだ安心できません。
作成したターゲットグループに登録したインスタンスをチェックして、ステータスが helthy になっていればホントの成功です。
これで構築は完了です。
動作確認
では本当にhttps通信できるか試してみます。
ALBのDNS名を確認します。
ブラウザを開いてURL https://{ALBのDNS名}/index.html を開きます。
すると、以下のような警告画面が表示されます。自己証明書は、信頼性が引くと判断されるようです。
警告を無視します。Chromeの場合は、警告画面の『詳細設定』をクリックします。
『{ALBのDNS名} にアクセスする』をクリックします。
無事、https://{ALBのDNS名}/index.html が開きました。
自己証明書なので『保護されていない通信』と警告はでますが、開きました。
おわりに
これで、HTTPS通信のWEBサイトが作れました。
次回は、ALBとCognitoを連携させて認証の仕組みを追加しようと思います。
(ALBとCognitoを連携させるには、HTTPS通信が必須です)
こんな弱小ブログでもサポートしてくれる人がいることに感謝です。