BeeX Tech blog

BeeXではクラウドネイティブアプリ開発、企業の基幹クラウド基盤構築、システム移行、運用保守を行っています。

証明書をALBに紐づけてHTTPSで接続する


BeeXの榊原です。本記事はBeeX Advent Calendar 2023 の15日目の内容です。

qiita.com

前回はSSL証明書をAWS ACMで作成したので、今回はそれをALBに紐づけてHTTPSで接続できるようにします。前回記事は下からどうぞ。

www.beex-inc.com


構築する構成

証明書取得まで(別記事)
➁証明書を紐づけてALBにHTTPS接続するところまで(本記事)
AzureADとCognitoで認証を付けるところまで(別記事)


構築手順

EC2で接続先Webサーバの構築

お好きなLinuxサーバを立てます。自分はAmazon Linux 2で立てました。サーバを立てたらTeraTerm等でOSに入り、以下のコマンドを入力します。

$ sudo yum update -y
$ sudo yum install httpd -y
$ cd /var/www/html
$ sudo vi index.html

# index.htmlは以下を記載して保存
<html><h1>任意の値</h1></html>

$ sudo service httpd restart

ターゲットグループの作成と設定

AWSコンソールのEC2にいき、サイドバーの「ターゲットグループ」、「ターゲットグループの作成」を押下します。

下のように設定します。
・ターゲットタイプはインスタンス
・ターゲットグループ名は任意
・プロトコル:ポートはALB→EC2はHTTP
・VPCはEC2があるサブネットを選択
・ヘルスチェックプロトコルHTTP
・ヘルスチェックパスは/index.html

ターゲットに作成したインスタンスを選択します。

以上でターゲットグループの設定は完了です。

ALBの作成

AWSコンソールのEC2からALBを作成します。設定は画像をご参照ください。

セキュリティグループについては、安全のため自宅のIPからしか接続できないように設定しています。

以上を設定したら、画像を取り忘れましたが「ロードバランサーの作成」を押下します。ALBの作成が完了したらターゲットグループに戻ってヘルスチェックが通っているか確認しましょう。HealthyになっていればOKです。

レコードの登録

仕上げにドメイン名でALBにアクセスできるようRoute53のホストゾーンを設定します。

・レコードタイプはAレコード
・エイリアスを有効
・トラフィックのルーティング先に作成したALBを指定

ここまで設定出来たら「レコードを作成」を押下します。

下記のようにAレコードのルーティング先にALBのDNS名が登録されていればOKです。

実際にドメイン名でALBに接続する

ブラウザで自身のドメイン名にアクセスしてみましょう。
検索画面に「https\://自身のドメイン名」と入力します。

無事にロードバランサ先のEC2に接続できました。
証明書の内容も見てみましょう。問題なさそうです。

最後に

今回はALBに証明書を紐づけてHTTPS接続する手順について書きました。これ以降Azure ADとCognitoで認証されたユーザーのみEC2に接続できるという設定も可能です。もしご興味があればこちらを参考に設定してみてください。ここまでお読みいただきありがとうございました。