はじめに
株式会社マイスター・ギルド新規事業部のヒツジーです。
弊社新規事業部では、新規サービスの立ち上げを目指して
日々、アイディアの検証やプロトタイプの作成などを行っています!
技術の進歩は目覚ましいので、置いてかれないように新しい技術のキャッチアップにもいそしんでいます!
本記事は、S3にホスティングしているWebサイトに独自ドメインを割り当て、https化する方法ついてご紹介します。
S3にホスティングしているWebサイトのURLはhttp://<bucket名>.s3-website-<region名>.amazonaws.com/
のようになっていると思いますが、独自ドメインを割り当てhttps化させてhttps://<original-domain>
のように使えるようにする方法を具体的に説明していきます!
サブドメインも合わせてhttps化したいという方は読む価値ありです。
独自ドメインを割り当て、https化する方法の概要
S3にホスティングしているだけの状態は以下のような構成図となります。
これを、独自ドメインを割り当ててhttps化するには、以下のような構成をとります。
- CloudFront
- Route53
- ACM
CloudFrontでは主にルーティングを行います。ドメインとホスティング先、SSL証明書の一元管理を行います。
Route53はDNSサーバとしての役割を担います。対象のドメインへの問い合わせがあればIPアドレスを返します。
ACM(AWS Certificate Manager)は対象ドメインに対してSSL証明書を発行します。
構成を見ていると単純だなと思うんですが、手続きは初めてだとちょっと面倒です。
以下に具体的な方法を記していきます。
独自ドメインの割り当てとhttps化の具体的な方法
独自ドメインは事前に購入済みであることを前提とします。
手順
- Route53でドメインの向き先を指定
- ACMでSSL証明書を発行
- CloudFrontでディストリビューション作成
※手順として、1, 2, 3と順番を書いていますが、一部行ったり来たりしないといけない部分もあります。
1. Route53で独自ドメインの向き先を指定
-
デフォルトではタイプがNSとSOAのレコードが作成されています。
まずはAレコードを作成します
次にサブドメインのCNAMEレコードを作成します
- レコード名にサブドメインを入力します。例えば「www」
- レコードタイプ「CNAME」を選択
- 値のところにルートドメインを入力します
これでサブドメインへのアクセスはルートドメインへルーティングされます。
2. ACMでSSL証明書を発行
注意1:リージョンはバージニア北部にしましょう。
注意2:サブドメインも利用したい場合は、証明書1つに対して、http://<domain>
と http://*.<domain>
の両方を紐づける必要があります。
これをやっていないと後で、証明書を作り直すはめになります(なりました)。
-
「完全修飾ドメイン名」に購入済みの独自ドメインを入力します。サブドメインにもhttps化したい場合は、ここで「*.(domain)」のようにワイルドカードで入力しておきましょう。
-
ステータスが「発行済み」になるまで待つ。早くて30分くらいです。ドメインを購入していないと発行済みにはなりませんのでご注意ください。
3. CloudFrontでディストリビューション作成
(ここは人によりますが)
-
ビューワープロトコルポリシーで「redirect HTTP to HTTPS」をチェック
-
許可されたHTTPメソッドで「GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE」をチェック
-
代替ドメイン名にルートドメインとサブドメインを追加します
-
カスタムSSL証明書にACMで作成したSSL証明書を選択します(ここはACMで作成後に選択、もしくは先にSSL証明書を作成します)
最後に「ディストリビューションを作成」ボタンをクリックで、作成完了です。
最後に
以上が、S3でホスティングしているWebサイトに独自ドメインを割り当て、https化する方法となります。
CloudFrontは1つのSSL証書しか紐づけられないので、サブドメインも含めた複数のドメインもhttps化するためには、証明書の発行側で複数のドメインを紐づけないといけません。
ここの部分は詰まった部分だったんで、同じことをしたい人にとっては、このドキュメントが役立つかと思います。