0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALBに接続したら502 badgatewayと出た原因[備忘録]

Last updated at Posted at 2025-09-05

初めに

設定を終え、クライアントからALBのURL(route53のエイリアス)でアクセスしようとしたら502 bad gatewayと出ました。
以下に原因と対処方法を備忘録として残します。

エラー発生時の状況まとめ

  • ALB(HTTPS/443, ACM証明書) → EC2(Windows Server)
  • クライアントに証明書インストール済み
  • **EC2のIPを直打ちではアクセスできる
  • しかし ALB経由では 502 Bad Gateway
  • セキュリティグループに問題なし

端折った構成図
https終端はalb.PNG

途中経過

公式ドキュメントを調べる

  • ロードバランサーがターゲットに接続するときに SSL ハンドシェイクエラーが発生しました

ハンドシェイクとは

  • HTTPS 開始時に行う手続き
  • クライアントとサーバーで以下を実施する
    1. 暗号方式の決定
    2. サーバー証明書の提示・検証
    3. 共通鍵(セッションキー)の交換
  • これが成立し、暗号通信(HTTPS)が可能になる

サーバのEC2に証明書をインポートしない構成のため、ターゲットグループのプロトコルはhttpが正しいのでは、と仮説を立てる→解決

原因

  • ALBのターゲットグループが HTTPS(443) に設定されていた
  • 実際のEC2は HTTP/80 で待受
  • ALBがターゲットへ TLSハンドシェイクを試みるが、EC2がHTTP応答 → 不一致で失敗
  • ALBはバックエンド接続エラーとして 502 を返却

対処

  • ターゲットグループを HTTP/80 で再作成・登録
  • 以降は ALB が HTTPS(443)で終端 → EC2へは HTTP(80) で中継

切り分けの観点

  1. ターゲットグループ設定確認
    • Protocol/Port (HTTP:80 or HTTPS:443)
    • ヘルスチェックのプロトコルや値に問題ないか
  2. 実サーバー待受確認
    • curl -I http://<EC2_IP>:80
    • openssl s_client -connect <EC2_IP>:443(必要時)
  3. ALBのCloudWatchメトリクス
    • HTTPCode_ELB_5XX_Count
  4. SG/NACL確認
    • EC2側は ALB SG → 80(または443) のみ許可

正しい構成パターン

TLS終端をALBにする

  • ALBリスナー: HTTPS/443 (ACM証明書)
  • ターゲットグループ: HTTP/80
  • EC2: HTTP/80で待受
  • ヘルスチェック: HTTP/80
  • SG: EC2は ALB SG からの80のみ許可

終わりに

再発防止として、どこがhttpsの終端なのかを確認する。

  • ALB終端の場合:ターゲットは HTTP/80 で待受 (EC2に証明書を入れない構成では、ターゲットグループはHTTPを選択する)
  • EC2終端の場合:ターゲットも HTTPS/443(証明書をIISに紐付けて公開する)
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?