おそらくwwwサブドメインと裸の頂点を別々に扱いたいと思うでしょう。
1)http://example.com - >https://www.example.com
裸(頂点)ドメインを処理するための最も簡単なルートはリダイレクトS3バケットターゲットにエイリアスレコードを使用するための頂点をRoute53に行くと、セットアップすることです。 S3バケットでは、「すべてのリクエストを別のドメインにリダイレクトする」を有効にしてhttps://www.example.comにリダイレクトすることができます。
このソリューションは、https要求でSSLを終了しないため、HTTP要求ではなくhttpsでのみ機能します。 httpとhttpsの両方で動作するソリューションについては、#3を参照してください。
2)http://www.example.com - >https://www.example.com
あなたが同じドメインWWWのhttp => httpsのアプリケーションでX-Forwarded-Proto
HTTPヘッダーを使用してリダイレクトを行うことができます。値はhttp
またはhttps
のいずれかになります。 http
を受け取った場合はhttps
にリダイレクトできます。あなたは、CloudFrontのと、フロント、
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$1 permanent;
}
を代わりにあなたのElastic Beanstalkでアプリケーションをことができて、http =を実装:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
nginxの例は次のようになります。
apacheの例は次のようになります。 > httpsがそこにリダイレクトされます。 「動作設定」では、「HTTPをHTTPSにリダイレクトする」ラジオボタンをチェックすることができます。
3)https://example.com - >https://www.example.com
あなたはexample.comとwww.example.comをカバーするサブジェクト代替名を持つSSL証明書を必要とします。 AWS Certificate Managerで無料で入手できます。 * .example.comとexample.comを1つの証明書に含めることができる「名前を追加する」ことができます。証明書マネージャはCloudfrontと完全に統合されているので、いい選択です。
CloudFrontのオプション:
CloudFrontのは、ここではかなり良いオプションです - あなたは前に全体のアプリ(頂点とWWWを)それを使用する場合は特に。
「代替ドメイン名(CNAME)」のCloudfront内では、example.comとwww.example.comの両方を追加する必要があります(これらをカンマまたは改行で区切ります)。両方のドメインをカバーするデジタル証明書も指定します。
Elastic Beanstalkでオプション:!
あなたはCloudFrontのを使用したくない場合は、頂点とWWWの両方の代わりに、弾性ロードバランサでSSLを終了し、あなたのアプリケーション層を使用して、同じWWWのリダイレクトを実装することができます。httpサービス(apache、nginxなど)。両方のドメイン(apexとwwwサブドメイン)をカバーするSSL証明書を追加するだけです。あなたはhttps://example.comは、Elastic Beanstalkでに戻ってあなたのオリジンサーバへ行くための要求を得るでしょう、しかし、あなたは指示301を返却する必要があります終了オプションのいずれかで
:
は非WWWのリダイレクトを実装しますブラウザをアプリケーション層のhttps://www.example.comに変更します。
apacheの例:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
nginxの例:アペックスのため
server {
server_name "~^(?!www\.).*" ;
return 301 $scheme://www.$host$request_uri;
}
Route53エイリアスレコード:
溶液のいずれかを使用すると、Route53 Aエイリアスレコードが必要でしょうCNAMEレコードは頂点(裸の)ドメインではサポートされていないため、頂点でこの作業を行う必要があります。 Elastic BeanstalkターゲットまたはCloudfrontターゲットを指定します。
どのDNSサービスを使用していますか? Route53? –
私はElgin Beanstalk上でlookとNodeJSアプリケーションをnginxプロキシの背後で実行しました。あなたのhttp => httpsと!www => wwwのリダイレクトは、ノードではなくnginxを使って実装するのが少し洗練されています。 .ebextensionsでこれを行うことができます:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#nodejs-platform-proxy –