AWS
SSL
初心者
インフラ
無料

AWSで独自ドメインを無料で簡単にSSL化!

ゴール

お名前.comで取得したドメイン(example.comとする)のサブドメイン(test.example.com)にアクセスして、EC2に構築したNginxの画面がhttpsで見えること。
下記構成図の環境構築を目指す。

ACM_Setting.png

前提

  • お名前.comまたは他のドメイン事業者でドメインを取得していること
  • 取得しているドメインにCNAMEを設定できること

説明しないこと

  • CNAMEって?みたいなドメインの基礎的なこと
  • ALB,EC2、セキュリティグループの作成方法
  • ワイルドカードって?みたいな説明

やっていく

その前に。。

ACMって??

https://aws.amazon.com/jp/certificate-manager/

AWS Certificate Manager により、AWS の各種サービスとお客様の内部接続リソースで使用するパブリックとプライベートの Secure Sockets Layer/Transport Layer Security (SSL/TLS) 証明書のプロビジョニング、管理、およびデプロイを簡単に行えます。SSL/TLS 証明書は、ネットワーク通信を保護し、プライベートネットワーク上のリソースと同様にインターネット上の Web サイトのアイデンティティを確立するために使用されます。AWS Certificate Manager を使用すれば、SSL/TLS 証明書の購入、アップロード、および更新という時間のかかるプロセスを手動で行う必要がなくなります。

つまり、ドメインさえあれば無料でSSL証明書を取得して、AWSの各リソース(ALB,ELB,EC2など)を簡単にSSL化することができるもの。ワイルドカードも対応しているみたい。
今まで、なんで存在を知らんかったんや。めちゃくちゃ便利やんけ!ってことで、やっていきます。

やっていく

流れとしては、次の5Stepです。
1. ACMで証明書をリクエスト
2. ドメインの設定を
3. ACMで証明書を取得
4. ALB作成
5. Route53

ACMで証明書のリクエスト

まずは、ACMで証明書のリクエストをします。
AWSのリソース一覧からCertificate Managerを選びます。
”証明書のリクエスト”をクリック。
スクリーンショット 2018-10-08 17.23.19.png

”パブリック証明書のリクエスト”にチェックを入れて次へ。
スクリーンショット 2018-10-08 17.23.29.png

”ドメイン名”に取得したいドメインを入力します。今回はワイルドカード証明書を取得したいので、 「example.com」と「*.example.com」を入力して次へ。
スクリーンショット 2018-10-08 17.23.53.png

DNSの検証方法は”DNSの検証”で行いました。取得したいドメインでメールが受信できる場合は、メールで検証も行えます。
スクリーンショット 2018-10-08 17.24.04.png

最後に”確定とリクエスト”を押します。
スクリーンショット 2018-10-08 17.24.13.png

証明書の一覧から、example.comをクリックします。
DNS設定ファイルにエクスポートをクリックして、DNSレコード情報をダウンロードします。
(画像は検証成功後のものです。この段階では、検証状態は”検証中”になっています。)
スクリーンショット 2018-10-08 17.31.13.png

ドメイン設定

今回はお名前.comでドメインを取得しているので、お名前.comで設定していきます。
お名前.comにログインして、Topから”DNSレコードを設定する”をクリック。
スクリーンショット 2018-10-08 17.40.10.png

対象ドメインにCNAMEレコードを追加します。
ACMの画面から取得した”DNS_Configuration.csv”ファイルの、”Record Name”をホスト名に、”Record Value”をValueに入力して、”追加”→”保存”。
スクリーンショット 2018-10-08 17.40.47.png

NameServerがお名前.comのだと、設定できなかったので下記の4つに変更してください。
01.dnsv.jp
02.dnsv.jp
03.dnsv.jp
04.dnsv.jp

これでドメインの設定は完了です。

ACMで証明書の確認

ACMでドメインの検証状態を確認すると、成功になっているはずです。
もしなっていない場合は、下記を実施してみてください。
- CNAMEレコードが反映されているか確認
- OriginDomainのNameServerが0[1-4].dnsv.jpに変わっているか
- 一晩待ってみる。(私のときは反映が遅くて、一晩待ったら成功してました)

ALBの作成とEC2への設定

適当にALBを作成して、対象のEC2へリクエストを流すように設定します。
この時、証明書を”既存のACMから選択”で、先ほど作成したものを選びます。

Route53でサブドメインの設定

example.comの証明書は取得できました。ワイルドカード証明書も取得できたので、test.example.comのAliasの設定をします。

"Create Hosted Zone"でHostedZoneを作成します。
DomainNameは”example.com”、Typeは”Public”でCreate。
スクリーンショット 2018-10-08 18.02.00.png

次に、RecordSetを追加します。
Nameに”test"を入力して、Alias:Yesにチェックを入れる。
すると、先程作成したALBが出てくるので選択して、Create。
スクリーンショット 2018-10-08 18.05.39.png

これですべての作業が終わりました。
https://test.example.com にアクセスするとEC2の画面が見えるはずです。

まとめ

こうやってまとめると、簡単そうなのですが最初の一発目は仕組みがわからなくてなかなかハマりました。構成をお絵かきすると頭に入りやすくなるので、お絵かきおすすめです!