4
2

More than 1 year has passed since last update.

ApplicationLoadBalancer(ALB)の自己証明書を用いたHTTPS化

Last updated at Posted at 2022-05-01

概要

ALBの利用においてHTTPS化を行うための方法。
ALBのDNS名と同名の自己証明書を作成し、ACMへインポート。後、ALBに適用すればできると想定。

前提

構成は以下の通り。
image.png

構成のポイントは以下。
 ・ALBはプライベート
 ・ALB-バックエンドサーバ(Nginxコンテナ)間はhttps化しない

構築順序は以下の通り。
 1.SSL証明書の作成
 2.ACMへのSSL証明書のインポート
 3.ALBリスナーの設定変更(https化)

SSL証明書の作成

# 秘密鍵の作成
> openssl genrsa -out private.key

# CSRファイルの作成
# 対話モードでCSRファイルの各種属性を設定する
# その際「Common Name」の設定値はALBのDNS名※を登録すること
> openssl req -new -key private.key -out server.csr

# SSL証明書の作成
# 有効期限は1年(365日)
> openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt

ACMへのSSL証明書のインポート

ACMコンソールからインポートを選択。
image.png

各種情報を入力。入力値はAWSのマニュアルを参照。
https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/import-certificate-api-cli.html
>証明書をインポートする
image.png

「次へ」を押下。確認画面も問題がなければ「インポート」を押下する。

ALBリスナーの設定変更(https化)

ALBのリスナー設定より、「ACMへのSSL証明書のインポート」でインポートした証明書を利用する。
リスニングポートをhttp→httpsへ変更
image.png

作成した証明書をアタッチ。
image.png
なお、Securitypolicyは、どの暗号プロトコルをサポートするかの選択を指すと理解。
上図の設定はAWSの推奨に則りELBSecurityPolicy-2016-08を選択。暗号プロトコルの互換性のためとのこと(2022/5/1現在)。
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
>セキュリティポリシー

動作確認

実行ログ
# 自己証明書のため「-k」で証明書の検証を無視する必要あり
> ~/environment/ssl-credentials $ curl -I https://<ALBのホスト名>.ap-northeast-1.elb.amazonaws.com -k
HTTP/1.1 200 OK
・・・

ステータスコード200が返ってきたためOK!

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2