web-dev-qa-db-ja.com

AmazonS3静的ウェブサイト-HTTPSをHTTPにリダイレクトする

S3/Cloudfrontを使用して静的ウェブサイトを立ち上げようとしています。サイトにHTTPSは必要ありませんが、Webサイトの現在のイテレーションはHTTPSを介して提供され、HTTPSである数百のリンクとインデックス付きURLがあります。

私は何時間も検索してきましたが、S3/Cloudfrontのみを使用している場合、HTTPSURLをHTTPにリダイレクトする方法が見つかりません。現在、HTTPS URLは、ページのHTTPバージョンにリダイレクトする代わりに、接続を拒否します。

Apacheがなければ、これを行うことは不可能のようです。ヒントはありますか?

14
user3861666

S3での静的ウェブサイトホスティングは、完全なドメインパス、つまりexample.com.s3-website-us-east-1.amazonaws.comを使用しない限り、HTTPSをサポートしません。 URLを保持したいので、SSLを処理するにはCloudFrontディストリビューションを使用する必要があります。

  1. SSL証明書をCloudFrontにアップロードします:aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/path/ [1]
  2. クラウドフロントディストリビューションを作成し、次のように設定します。

    • オリジンドメイン名:s3バケット
    • 代替ドメイン名(CNAME):Webサイトの目的の場所(例: example.comまたはwww.example.com
    • SSL証明書:手順1でアップロードしたSSL証明書を選択します。
    • カスタムSSLクライアントサポート:本当に古いクライアントとの互換性が必要な場合を除いて、[サーバー名表示をサポートするクライアントのみ]を選択すると、600ドル節約できます。

    Httpsをs3リダイレクトにリダイレクトする場合、オリジンドメインはオートコンプリートバケットであってはなりませんが、静的リダイレクトエンドポイントs3は

  3. ディストリビューションを保存します。ステータス「進行中」が表示されます。通常、ディストリビューションが「デプロイ」されるまでに15分ほどかかります。ディストリビューションが「デプロイ」されるまで、ステップ4に進まないでください。

  4. ディストリビューションが機能することを確認します。リスト内のドメイン名を介してCloudFrontディストリビューションに移動します。 「https // d111111abcdef8.cloudfront.net /」。あなたはあなたのウェブサイトを見るはずです。
  5. DNSレコードを変更して、S3バケットではなくCloudFrontディストリビューションを指すようにします。

[1] CloudFrontに証明書を追加する際に問題が発生した場合は、次の記事で詳細を確認してください: http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#cnames-and- https-procedure

26
larkin