見出し画像

AWSでWEBサーバーをたてよう(4)ALB+自己証明書 編

『AWSでWEBサーバーを作る』の4回目
ALBと自己証明書を使って HTTPS 通信のWEBサイトを作ります。

構成図

今回作成するインフラの構成図です。

画像2

今回はWEBサーバーまで作ってあるとして、ALBの作り方を紹介します。

画像2

参考サイト

こちらのサイトを参考にさせて頂きました。というかそのままです。

作成の手順

オレオレ証明書(自己証明書)を作る

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を選択します。

画像17

左側の『ロードバランサー』をクリックし、『ロードバランサーの作成』ボタンをクリックします。

画像18

ALB(Application Load Balancer)の作成ボタンをクリックします。

画像18

ALBを設定していきます。
リスナーをHTTPSにして、WEBサーバーのEC2インスタンスがあるVPCとサブネットワークを設定します。

画像5

ここで、さきほど作成した自己証明書を設定します。

画像6

セキュリティグループを設定します。

画像7

ターゲットグループを設定します。
用意したWEBサーバーは、8082番ポートを使うよう設定しています。
また、http://{IPアドレス}:8082/index.html のサイトをヘルスチェック用に作成しています。

画像8

作成したターゲットグループにWEBサーバーのEC2インスタンスを設定します。

画像18

『作成』ボタンをクリックします。

画像10

作成に成功すると以下のような画面になります。

画像11

作成に成功しても、まだ安心できません。
作成したターゲットグループに登録したインスタンスをチェックして、ステータスが helthy になっていればホントの成功です。

画像18

これで構築は完了です。

動作確認

では本当にhttps通信できるか試してみます。
ALBのDNS名を確認します。

画像13

ブラウザを開いてURL  https://{ALBのDNS名}/index.html を開きます。
すると、以下のような警告画面が表示されます。自己証明書は、信頼性が引くと判断されるようです。
警告を無視します。Chromeの場合は、警告画面の『詳細設定』をクリックします。

画像14

『{ALBのDNS名} にアクセスする』をクリックします。

画像15

無事、https://{ALBのDNS名}/index.html が開きました。
自己証明書なので『保護されていない通信』と警告はでますが、開きました。

画像16

おわりに

これで、HTTPS通信のWEBサイトが作れました。
次回は、ALBとCognitoを連携させて認証の仕組みを追加しようと思います。
(ALBとCognitoを連携させるには、HTTPS通信が必須です)

こんな弱小ブログでもサポートしてくれる人がいることに感謝です。