web-dev-qa-db-ja.com

Amazon Route53でhttpリクエストをhttpsに転送する方法は?

AmazonRoute53にサブドメインがあります。 secure.example.comとしましょう

リクエストがhttps://secure.example.comのように届く場合は問題ありませんが、httpリクエストをhttps経由で強制的に送信したいと思います。ユーザーがhttp://secure.example.comと入力すると、https://secure.example.comに転送する必要があります。

Amazon Route53httpからhttpsに着信するドメインレベルのリダイレクト/転送リクエストはありますか?

25
huzeyfe

いいえ、これを行う方法はありません。特定のプロトコルを強制したり、あるプロトコルから別のプロトコルに値をプッシュしたりするDNS関数ではないためです。これは、Apache、IIS、またはNGINXのいずれかでWebサーバーレベルで簡単に実行できます。

いずれの場合も、特定のレコードを特定のアドレス(IPまたは別のホスト名)を指すAまたはCNAMEの値は同じであり、ポート80またはポート443を介して接続するだけです。

Apacheでは、単に書き換えを使用できます(enable mod_rewrite 最初):

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://www.Host.com/$1 [R]
17
Neal Magee

この質問の簡単な更新です。いいえの質問に答える一方で、ルート53を使用してHTTPSを強制することはできません。これにより、AWSホスティングでhttpsを強制することは不可能であると考える人もいます。

Certificate ManagerでSSL証明書を作成(または独自にインポート)し、どこでもWebサイトをホスト(S3/EC2)できます。次に、サイトのCloudFrontディストリビューションをセットアップし、SSL証明書をインポートする必要があります。その後、オプションを使用できますRedirect HTTP to HTTPSCloudFrontコンソールの[ビヘイビアー]タブから。

11
Mrk Fldig

2019 +

@ Jamauric Holtソリューションは私を道に導きましたが、少し短かったです

このソリューションはアプリケーションロードバランサーでのみ機能し、従来のロードバランサーでは機能しません。

コンソールで、EC2>ロードバランサー>ロードバランサー>リスナーに移動します

ここでは、HTTP:80とHTTPS:443の2つのルールが必要です。

あなたはただする必要があります:

  • hTTP:80ルールを編集します

  • 転送ルールを削除し、リダイレクトルールをポート443に追加します

  • 保存すると、次のように表示されます。 enter image description here

5
Sebastien Horin

(ELB)アプリケーションロードバランサーを使用して、ELB編集セクションのポート443にトラフィックをリダイレクトすることでこれを実現しました。もちろん、アプリケーションとWebサイトをホストするためにec2インスタンスを使用しています。

aws elb edit screenshot

3
Jamaurice Holt