Posted at

Route53+S3+CloudFrontでhttpsのurlをリダイレクトさせる

More than 1 year has passed since last update.


概要

サイトのお引越しの時などに、Route53+S3でS3の静的Webサイトホスティング機能を使うと便利なのですが、

Httpsをリダイレクトしたい場合、S3単体ではSSL証明書を扱うことができないため、CloudFront経由で行います。

その方法とはまったところを紹介します。


手順


  • S3のバケットを作り、全てのリクエストをリダイレクトするように設定する

  • Certificate Managerで証明書を作る

  • CloudFrontのDistributionを新しく作りOriginをS3にし証明書を設定する

  • Route53にS3に向くようにRecordを追加する


S3のバケットを作り、全てのリクエストをリダイレクトするように設定する

S3のコンソールを開いてバケットを作り、「Static Website Hosting」を選んで

スクリーンショット 2017-06-05 8.07.46.png

リダイレクト先を設定します。

スクリーンショット 2017-06-05 8.08.14.png

エンドポイントのところをクリックして意図通りにリダイレクトされたらOKです。


Certificate Managerで証明書を作る

CloudFrontで使うようの証明書を作るのですが、必ずリージョンをバージニア北部(us-east-1)で作ってください。そうしないとCloudFrontの設定画面に出てきません。ここにはまって少し時間を使いました。

スクリーンショット 2017-06-05 8.15.45.png


CloudFrontのDistributionを新しく作りOriginをS3にし証明書を設定する

スクリーンショット 2017-06-05 8.19.24.png

CloudFrontの設定をするのですが、ここでOrigin Domain Nameにサジェストで出てくるバケットを指定してはいけません!!!

S3はストレージとして使う時とWebサイトとして使うときでエンドポイントが違います!

ではここで何を指定するかというと、先ほどのS3の設定の時に出てきた{バケット名}.s3-website-{リージョン名}.amazonaws.comを指定します。ここにめちゃくちゃはまって時間を無駄にしました。ツライ。

あとは証明書を設定してCNAMEに自分のリダイレクト元にしたいドメイン名を指定します。

スクリーンショット 2017-06-05 8.32.24.png


Route53にS3に向くようにRecordを追加する

スクリーンショット 2017-06-05 8.29.03.png

AレコードでCloudFrontに向けてALIAS貼ります


まとめ

最初はS3とRoute53だけでできるんだろうと呑気にやってたら色々やらなきゃいけず、結構はまってしまいました。

設定し終わると便利だなあという感じ。