はじめに
AWSで作成したWebサイトをHTTPS化する手順について記載します。
内容
下記の順番で実施していきますが紆余曲折があってキャプチャの前後関係がおかしいところがありますが、ご了承ください。
- Webサイトの準備
- ドメインを取得する
- 取得したドメインをDNSに登録する
- 証明書を発行する
- ELBに証明書付きドメインをアタッチ
Webサイトの準備
あらかじめEC2で作成したWebサイトを準備します。EC2のWebサイト構築は「はじめてのAWSその2 EC2のサーバを構築する」にて記載しています。
ドメインを取得する
Route53でドメインを買うこともできますが、今回はフリーのドメインを取得することにしました。
-
Freenomのサイトでほしいドメインの利用可能状況をチェックします。
取得したドメインをDNSに登録する
AWSのDNSサービスであるRoute53に取得したドメインを登録していきます。このホストゾーンには0.5USD/月ほどの料金が掛かりますので注意です。
-
ホストゾーンのNSレコードにある4つのRoute53ドメインサーバを、Freenumに登録します。
ns-380.awsdns-47.com.
ns-1571.awsdns-04.co.uk.
ns-1431.awsdns-50.org.
ns-823.awsdns-38.net.
-
Management toolメニューからName Serversを選んでUse custom nameservers (enter below)を押します。すると利用するNameserverを選ぶことができるので、Rout53のNSレコードにあった4つのNameserverの情報をインプットしてChange Nameserversをクリックします。
-
無事にNameserverが登録できました。これにより、取得したドメインの名前解決は、Route53のネームサーバーが使われることになります。
証明書を発行する
取得したドメインに対して証明書を発行します。ELBでも*.amazonaws.comのようなパブリックドメインが割り当てられますが、こういったAWSのドメインには証明書を発行できないようになっています。
-
検証方法はDNSの検証を選びます。ここでメール検証を選ぶと、ドメインの管理者あてにメールが発行されて、Verifyするやり方になります。今回はドメインの管理者といっても名前を借りてきているだけなのでDNS検証の方が都合よいのです。
-
下記のようなCSVファイルが来ますのでこれをもとにRoute53に設定しに行きます。
Domain Name,Record Name,Record Type,Record Value
talomina.tk,_3622途中省略ae31.talomina.tk.,CNAME,_772c1途中省略3884.nfyddsqlcy.acm-validations.aws.
ELBにドメインを紐づける
ELBの環境構築の細かい部分は「AWSでELB環境を作るための覚書」で記載しました。
-
あとは通常通りロードバランサを作成します。
- セキュリティグループのインバウンド側はHTTPS(443)をセットします。
- ターゲットグループにはHTTP(80)で接続します。
-
レコード名はブランク、レコードタイプはA、トラフィックのルーティング先はエイリアス指定に切り替えることでELBを選択することができます。
おわりに
ACMの証明書はサーバ認証という簡易的なものですが、パブリックSSLに関しては無料で利用できます。Route53はホストゾーンの維持に少々料金がかかりますので注意。また今回無料のドメインを取得しましたが、Route53で購入すればすべてAWS内で完結することができるので非常にラクですね。
とはいえ、いろいろな手間を考えると、Webサイトを作るだけならレンタルサーバを利用したほうが圧倒的に手間もコストも少ないと感じました。