LoginSignup
44
26

More than 5 years have passed since last update.

HerokuアプリにAWS Route53 で取った独自ドメインを割り当て、 Certificate Manager + Cloudfront を使ってhttps化する

Last updated at Posted at 2017-02-10

はじめに

この記事では、herokuアプリを公開するために

  • AWS Route53で独自ドメインを取得しherokuアプリにわりあてる
  • AWS Certificate Managerで無料のサーバ証明書を取得してCloudFrontに登録しアプリのhttps化を行う

という2つの作業手順を紹介します。
https://blog.heroku.com/ssl-is-now-included-on-all-paid-dynos#feedback
herokuでも無料で証明書を登録できるようになった(これ以前は2000円/月くらいかかっていた)のですが証明書は自分でよういしないといけないのが面倒くさいのでAWSを利用しています。

独自ドメイン取得

1.Route53にてドメインを取得する

1-1.コンソールにサインインして、「Route53」を選択します。

スクリーンショット 2017-02-10 12.52.07 PM.jpg

1-2 DashBoard -> Register Domain を選択

スクリーンショット 2017-02-10 12.54.03 PM.jpg
ここでドメインを検索。購入します。
aiueo.comがここで取得できたとします。

2.herokuアプリへ独自ドメインを紐付け(Route53)

2-1 Create Hosted Zoneを登録

Created HosteZoneのボタンを押します。その後フォームが出現します。
スクリーンショット 2017-02-10 12.58.23 PM.jpg

DomainNameのフィールドに取得したドメインを入力します。
スクリーンショット 2017-02-10 1.01.38 PM.jpg

2-2 レコードの登録

Hosted Zoneの登録がおわると、一覧でてくるのでクリックします。
スクリーンショット 2017-02-10 1.05.01 PM.jpg

次の画面にいくと Created Record Sed という青いボタンがあるのでクリックします。右側にフォームが出現するので、
Nameにはwww
TypeCNAMEを選択
Valueあなたのherokuアプリの名前を選択(例: sampleapp.herokuapp.com)
を入力して確定します。
スクリーンショット 2017-02-10 1.14.11 PM.jpg

3.herokuアプリへ独自ドメインを紐付け(Heroku側の設定)

herokuの方も設定が必要です。
[注意!!] この設定自体は無料ですが、クレジットカードが登録されている必要があります。
以下のコマンドを実行するだけでOKです

$ heroku domains:add aiueo.com
$ heroku domains:add www.aiueo.com

反映にはしばらくかかりますが、www.aiueo.comにアクセスするとherokuアプリが観れます。

https 設定

1.AWS Certificate Managerで証明書の取得

AWSコンソールにサインインして、[セキュリティ、アイデンティティ]の下のCertificateManagerをクリックします。
スクリーンショット 2017-02-10 1.35.38 PM.jpg

1-1. 超重要!!!!!! リージョンを変更する

この画面にきたらまずすること、それはリージョンの変更です。
リージョンの変更をしなくても証明書はとれるのですが、cloudfrontがわから選択できません。これで大ハマりしました。
必ず米国東部(バージニア北部)に変更してください!
スクリーンショット 2017-02-10 1.42.07 PM.jpg

1-2. 証明書リクエストを開始する

以下のボタンを押します。
acm_cloudfront_ssl_03-640x427.png

1-3. 情報の入力

以下のように入力します。
スクリーンショット 2017-02-10 1.44.05 PM.jpg

1-4. リクエストの承認がメールで届くので承認する

メールが届き、記載されたリンクを踏むと以下のような内容の画面にいくので、approveを選択します。
スクリーンショット 2017-02-10 1.46.41 PM.jpg

approveをおした次の画面で、発行すみとなっていればOKです。
タイムラグで承認中のステータスの場合もありますが、しばらく待っていれば更新されます。
もし更新なければ、下記にしめしたアクション→「検証Eメールの際送信」から再度リクエストをおこなってください。
スクリーンショット 2017-02-10 1.51.13 PM.jpg

2 CroudFlontディストリビューションの作成と証明書の登録

以下からCloudFrontへアクセスします。
スクリーンショット 2017-02-10 1.55.11 PM.jpg

2-1.ディストリビューション作成

CreateDistributionを選択
スクリーンショット 2017-02-10 1.56.54 PM.jpg

WebのGetStartedを選択
スクリーンショット 2017-02-10 1.58.38 PM.jpg

2-2.ディストリビューション設定内容を入力

Origin Settings

Origin Domain NameにHerokuアプリを書きます.ここはこれだけでOK
(aiueo.herokuapp.com)
スクリーンショット 2017-02-10 2.01.26 PM.jpg

Default Cache Behavior Settings

Viewer Protocol Policy はRedirect HTTP to HTTPSを選択(これでhttpアクセスしてもhttpsにリダイレクトさせます。)
スクリーンショット 2017-02-10 2.04.20 PM.jpg

Distribution Settings

3箇所修正します。まずは
Alternate Domain Names(CNAMEs) に取得したドメインを入力

SSL CertificateはCustom SSL Certificate (example.com):をチェック

そうすると下のセレクトボックスにACMで取得した証明書がでてくるので選択
スクリーンショット 2017-02-10 2.06.11 PM.jpg

2-3.一番下のCreate Distributionボタンを押して確定!

確定を押すと一覧画面にもどってくるので、そこに作成したDistributionが表示されているはずです。スクリーンショット 2017-02-10 2.17.15 PM.jpg

2-4. 数十分待つ

Statusの項目がDeployedになるまで数十分かかります。
この間にRoute53にCloudFrontの設定を反映させます。(次へGo!)
 スクリーンショット 2017-02-10 2.14.55 PM.jpg

3. Route53 へドメインとCloudfront を反映

先ほど、Herokuアプりの設定と同じように、Hotsted ZoneからCreateRecord Setを選択します。

スクリーンショット 2017-02-10 2.23.12 PM.jpg

Name は空にします
TypeはAにします。
AliasをYesにチェック
Alias Targetをは先ほど作成したCloudFront Distributionが出てきているはずなので選択

これで完了です!!!!

aiueo.com にhttpででアクセスできるはず!

44
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
26