7

https Web サイト用に ELB をセットアップしていますが、ポート構成に関して質問があります...

現在、ELB に次のポート構成があります。

  • 80 (HTTP) から 80 (HTTP) への転送
  • 443 (HTTPS) から 80 (HTTP) への転送

私のインスタンスでは、次の Apache 構成があります。

どうやらそれはうまくいっているようですが、それは正しい方法ですか?

ご協力ありがとうございました

セリーヌ

PS: ELB の設定を開始したとき、443 から 443 への転送を指示しましたが、認証のために奇妙な質問に答える必要がありました...

4

2 に答える 2

15

質問で説明されている構成は、終わりのないリダイレクトを作成したため機能しませんでした: 443(ELB) 80(Apache) への転送 443(ELB) への転送 80(Apache) への転送 443(ELB) など。

そこで、ELB 構成を次のように変更しました。

  • 443 (HTTPS) から 443 (HTTPS) への転送
  • 80 (HTTP) から 80 (HTTP) への転送

443 (HTTPS) に転送するリスナー 443 (HTTPS) を作成したとき、認証に関する質問に答えることができませんでした。ELB の説明を見ると、「バックエンド認証: 無効」と表示されます。

ヘルスチェックは HTTPS:443 で行われます

(インスタンス セキュリティ グループも変更しました。ロード バランサーのみがポート 80 および 443 でインスタンスにアクセスできます)

アップデート:

別の解決策は、インスタンスでポート 80 のみを開くことです。

  • 80 (HTTP) から 80 (HTTP) への転送
  • 443 (HTTPS) から 80 (HTTP) への転送

ただし、X-Forwarded-Proto を使用して、クライアントが HTTP または HTTPS を使用したかどうかを判断し、X-Forwarded-Proto = http の場合にのみ HTTPS に転送します。

Apache の例:

<VirtualHost *:80>
    ...
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    ...
</VirtualHost>

ELB チェックがリダイレクトされないように、行RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthCheckerが追加されました。ヘルスチェックに関するその他の解決策については、https://serverfault.com/questions/470015/how-should-i-configure-my-elb-health-check-when-using-namevirtualhosts-and-redirを参照してください

X-Forwarded-Proto に関する AWS ドキュメント: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/x-forwarded-headers.html#x-forwarded-proto

于 2013-06-19T15:28:06.617 に答える
0

これは有効な方法です。ELB に SSL ターミネーションを処理させることができます。

コンプライアンスのケースによっては、インスタンスまでのパス全体を暗号化する必要があります。これに当てはまらない場合は、変更を加える必要はありません。

于 2013-06-18T20:51:21.733 に答える