ムームードメインで取得したドメインのサブドメインをRoute53で管理してSSL化したページを公開

## 経緯
SSL化しないとGAでユーザーの参照元を表示してもらえなかった。
S3で公開しているページにドメインの設定とSSL化することになった。
ドメインはAWS外(ムームードメイン)で取得。サブドメインのみをAWSで管理(したかった(問題あった))

※※ メモベースです。ご了承くださいませ〜 ※※
※※ AWS周り疎いので不審な点ツッコミいただきたいです ※※

## 構成
![Untitled Diagram (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/bfe97737-22f3-31cd-13a2-2154e3fedf97.png)

## 手順
- ドメイン取得(略 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]
#### サブドメイン追加
設定する予定である(サブ)ドメイン名の証明書を発行(この段階ではまだドメインとは紐づいていない。)
￼<img width="1103" alt="Add domain names.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/408c22a2-eee7-8239-102f-502572167310.png">
#### DNS検証を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/feae976d-c7cb-ece7-99fe-631f325fd4d9.png)
あとはそのまま進んで[Confirm and request]
保存すると、レジストラ(ムームードメイン)のDNSサーバに設定するための値(CNAME)がコンソールに表示される
(こういうの)
￼<img width="768" alt="DNS_Configuration copy.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/cd25a5a6-cedd-8eab-0c90-85c146230999.png">

DNS検証はRoute５３の設定したあとでやる。(この順番で記事を書いてるのは諸事情🙇🏻‍♀️)

## cloudfrontで公開

#### s3だけじゃダメな理由
- ssl化できない(ACM側が対応していない。)
- CloudFrontに対応出来るACMは バージニア北部のみなので、うまく紐づかないときは戻るべき

CreateDestributionから作成
webで[Get Started]
以下最低限の確認ポイント:
￼<img width="818" alt="Create Distribution copy.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/bcf55c59-7555-2b29-ca82-f2cb57c788b5.png">
s3のバケットを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/cefc79b1-9870-6f8d-0486-0c2e8ccb5dd7.png)
￼<img width="756" alt="Distribution Settings copy.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/5fa70e4f-7e97-ea23-946e-dc2e0159bb31.png">
Alternate Domain Names(CNAMEs) と ACMで取得した証明書をSSL Certificateで指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/00383d2a-8d65-625d-e9ab-556cab64c8c5.png)
rootをindex.htmlに設定
[Create Distribution]で作成

## ~~Route53で、サブドメインの作成+CloudFrontと紐付け~~ => ドメインのネームサーバの変更・サブドメインの紐付け
やりたかったこと:
Route53にサブドメインのホストゾーンを作成
CloudFrontに紐付け
ムームードメインのサブドメインのネームサーバに、route53で作成したサブドメインのホストゾーンのNS(ネームサーバ)レコードを追加設定

問題点:
ムームードメインにサブドメインのNSレコードを個別に設定する方法がない。
お名前.comだとこんな感じで、DNS設定でNSレコードをサブドメインに個別に設定することができる。
(めっちゃ画質悪い。。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/20fc672c-cd87-03af-409f-aa461ad3ad3f.png)

NSレコードが指定できないともちろんサブドメインにアクセスできない。

解決策: 
いっそドメインのネームサーバをRoute53側に登録する。
#### Route53にドメインのホストゾーンを追加
登録するとNSレコードが自動的に登録される
#### ムームーのDNSにNSレコードを登録する
route53のホストゾーンのNSレコードをムームーに登録。
これをすることでムームドメインで登録したドメインと、route53で作成したネームサーバが紐づく。
つまり、route53で切ったサブドメインと、ムームードメインをroute53で作成したネームサーバで紐づけることができる。

ドメイン管理>ドメイン操作>ドメイン一覧>該当ドメイン>ネームサーバ設定変更
「ムームードメインのネームサーバ(ムームーＤＮＳ)を使用する」から「取得したドメインで使用する」に変更
NSレコードのバリューを全部設定(末尾の.は削除)
以下のコマンドでネームサーバの設定確認ができる
(ネームサーバの反映には数日かかるらしいけど大体1日くらいでできてた)

```
$ dig sub.domain.com ns
```
#### サブドメインのレコードセットを作成
Route53にもどる。レコードセットの追加。
<img width="431" alt="Screenshot 2020-05-29 at 15.10.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/5298646b-5fb2-8f9b-8d93-70e20a65a52f.png">
レコードタイプはAでAliasをOnにしてcloudfrontを紐づけ

#### DNS検証
ACMで取得したCNAMEを使う。(すでに認証済なのはあとでスクショしたため。。)
<img width="1117" alt="Screenshot 2020-05-29 at 19.26.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/8485c39d-f53c-cbb6-8fbd-3a413e65acaf.png">
Name(_mojiretsu.subまで)とValueをコピー。Route53にレコードセットを追加。TypeをCNAMEにしてコピーした値を追加
<img width="425" alt="Screenshot 2020-05-29 at 19.48.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/7fdc516a-e6f5-a986-709c-2e9fffcfe37b.png">
[Create]
多分、元からドメインもRoute53で管理するってわかってたらもっといいやり方あったと思う..(ムームーの仕様先にしりたかった)
正しく設定できてれば、30分ぐらいでACMはこんな感じで検証済みになるはず。(証明書が有効になる)
<img width="1112" alt="Pasted Graphic 10 copy.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/718dd14e-9f9b-1c26-73f2-cebef879d914.png">

これでhttps//:sub.domain.jpがアクセスできるようになってるはず。
クロムならURL横が鍵マークになっててそこから証明書の発行元の確認ができる
<img width="318" alt="Screenshot 2020-05-29 at 15.21.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/e729111f-083a-7170-3e6b-8736295a7acf.png">
<img width="483" alt="Screenshot 2020-05-29 at 15.28.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233386/d4bb4f1c-4074-603b-88b4-201017ee9a2e.png">

以上！