経緯
SSL化しないとGAでユーザーの参照元を表示してもらえなかった。
S3で公開しているページにドメインの設定とSSL化することになった。
ドメインはAWS外(ムームードメイン)で取得。サブドメインのみをAWSで管理(したかった(問題あった))
※※ メモベースです。ご了承くださいませ〜 ※※
※※ AWS周り疎いので不審な点ツッコミいただきたいです ※※
構成
手順
- ドメイン取得(略 https://muumuu-domain.com/)
- S3でサイトの公開(略 https://qiita.com/dogwood008/items/a92abae789f4b0466f38 )
- ACMで証明書発行
- CloudFrontでSSL証明書・S3の紐付け(サイトの公開)
-
Route53で、サブドメインの作成+CloudFrontと紐付け=> ドメインのネームサーバの変更・サブドメインの紐付け
ACMで証明書発行
証明書発行のために、そもそもドメインを自分が所有していることを検証する必要がある。
検証方法は二種類存在。
- メール
- DNS
=> AWSはDNSでの検証を推奨しているので今回こちらで(メールで認証する場合はメールサーバが別途必要)
注意:
CloudFrontに対応出来る証明書が発行できるのは バージニア北部
(基本的にACMはELB(Elastic Load Balancer)にしか対応してないらしい)
ACM(Certificate Manager)を開く
リージョンを確認して[Request a certificate]
サブドメイン追加
設定する予定である(サブ)ドメイン名の証明書を発行(この段階ではまだドメインとは紐づいていない。)

DNS検証を選択
あとはそのまま進んで[Confirm and request]
保存すると、レジストラ(ムームードメイン)のDNSサーバに設定するための値(CNAME)がコンソールに表示される
(こういうの)

DNS検証はRoute53の設定したあとでやる。(この順番で記事を書いてるのは諸事情🙇🏻♀️)
cloudfrontで公開
s3だけじゃダメな理由
- ssl化できない(ACM側が対応していない。)
- CloudFrontに対応出来るACMは バージニア北部のみなので、うまく紐づかないときは戻るべき
CreateDestributionから作成
webで[Get Started]
以下最低限の確認ポイント:

s3のバケットを指定

Alternate Domain Names(CNAMEs) と ACMで取得した証明書をSSL Certificateで指定
rootをindex.htmlに設定
[Create Distribution]で作成
Route53で、サブドメインの作成+CloudFrontと紐付け => ドメインのネームサーバの変更・サブドメインの紐付け
やりたかったこと:
Route53にサブドメインのホストゾーンを作成
CloudFrontに紐付け
ムームードメインのサブドメインのネームサーバに、route53で作成したサブドメインのホストゾーンのNS(ネームサーバ)レコードを追加設定
問題点:
ムームードメインにサブドメインのNSレコードを個別に設定する方法がない。
お名前.comだとこんな感じで、DNS設定でNSレコードをサブドメインに個別に設定することができる。
(めっちゃ画質悪い。。)
NSレコードが指定できないともちろんサブドメインにアクセスできない。
解決策:
いっそドメインのネームサーバをRoute53側に登録する。
Route53にドメインのホストゾーンを追加
登録するとNSレコードが自動的に登録される
ムームーのDNSにNSレコードを登録する
route53のホストゾーンのNSレコードをムームーに登録。
これをすることでムームドメインで登録したドメインと、route53で作成したネームサーバが紐づく。
つまり、route53で切ったサブドメインと、ムームードメインをroute53で作成したネームサーバで紐づけることができる。
ドメイン管理>ドメイン操作>ドメイン一覧>該当ドメイン>ネームサーバ設定変更
「ムームードメインのネームサーバ(ムームーDNS)を使用する」から「取得したドメインで使用する」に変更
NSレコードのバリューを全部設定(末尾の.は削除)
以下のコマンドでネームサーバの設定確認ができる
(ネームサーバの反映には数日かかるらしいけど大体1日くらいでできてた)
$ dig sub.domain.com ns
サブドメインのレコードセットを作成
Route53にもどる。レコードセットの追加。
レコードタイプはAでAliasをOnにしてcloudfrontを紐づけ
DNS検証
ACMで取得したCNAMEを使う。(すでに認証済なのはあとでスクショしたため。。)
Name(_mojiretsu.subまで)とValueをコピー。Route53にレコードセットを追加。TypeをCNAMEにしてコピーした値を追加
[Create]
多分、元からドメインもRoute53で管理するってわかってたらもっといいやり方あったと思う..(ムームーの仕様先にしりたかった)
正しく設定できてれば、30分ぐらいでACMはこんな感じで検証済みになるはず。(証明書が有効になる)
これでhttps//:sub.domain.jpがアクセスできるようになってるはず。
クロムならURL横が鍵マークになっててそこから証明書の発行元の確認ができる
以上!