3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWSでWebサイトをHTTPS化する覚書

Posted at

はじめに

AWSで作成したWebサイトをHTTPS化する手順について記載します。

内容

下記の順番で実施していきますが紆余曲折があってキャプチャの前後関係がおかしいところがありますが、ご了承ください。

  • Webサイトの準備
  • ドメインを取得する
  • 取得したドメインをDNSに登録する
  • 証明書を発行する
  • ELBに証明書付きドメインをアタッチ

Webサイトの準備

あらかじめEC2で作成したWebサイトを準備します。EC2のWebサイト構築は「はじめてのAWSその2 EC2のサーバを構築する」にて記載しています。

ドメインを取得する

Route53でドメインを買うこともできますが、今回はフリーのドメインを取得することにしました。

  • Freenomのサイトでほしいドメインの利用可能状況をチェックします。
    image.png

  • 無料(0.00USD)のドメインを今すぐ入手!します。
    image.png

  • E-MailアドレスをVerifyしてドメインを取得することができます。
    image.png

取得したドメインをDNSに登録する

AWSのDNSサービスであるRoute53に取得したドメインを登録していきます。このホストゾーンには0.5USD/月ほどの料金が掛かりますので注意です。

  • Route53でホストゾーンの作成を行います。
    image.png

  • ドメイン名に先ほど取得したものを入力してホストゾーンの作成をクリックします。タイプはパブリックとしました。
    image.png

  • ホストゾーンができました。
    image.png

  • ホストゾーンの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.
  • Freenumのサイトに戻ってMyDomainsからManage Domainボタンをクリックします。
    image.png

  • Management toolメニューからName Serversを選んでUse custom nameservers (enter below)を押します。すると利用するNameserverを選ぶことができるので、Rout53のNSレコードにあった4つのNameserverの情報をインプットしてChange Nameserversをクリックします。
    image.png

  • 無事にNameserverが登録できました。これにより、取得したドメインの名前解決は、Route53のネームサーバーが使われることになります。
    image.png

証明書を発行する

取得したドメインに対して証明書を発行します。ELBでも*.amazonaws.comのようなパブリックドメインが割り当てられますが、こういったAWSのドメインには証明書を発行できないようになっています。

  • Amazon Certificate Managerの画面で証明書のプロビジョニングを「今すぐ始める」します。
    image.png

  • 「パブリック証明書のリクエスト」を選んで「証明書のリクエスト」をします。
    image.png

  • 「ドメイン名」に取得したドメイン名を入れて「次へ」をクリック。
    image.png

  • 検証方法はDNSの検証を選びます。ここでメール検証を選ぶと、ドメインの管理者あてにメールが発行されて、Verifyするやり方になります。今回はドメインの管理者といっても名前を借りてきているだけなのでDNS検証の方が都合よいのです。
    image.png

  • 適当な名前を付けて次へ
    image.png

  • 確認画面で「確認とリクエスト」します。
    image.png

  • 検証の画面が出てきて「検証保留中」となります。「DNS設定をファイルにエクスポート」します。
    image.png

  • 下記のようなCSVファイルが来ますのでこれをもとにRoute53に設定しに行きます。

DNS_Configuration.csv
Domain Name,Record Name,Record Type,Record Value
talomina.tk,_3622途中省略ae31.talomina.tk.,CNAME,_772c1途中省略3884.nfyddsqlcy.acm-validations.aws.

  • Route53にてCSVの内容でドメインのレコードを作成します。ここでレコードを作成できることがドメインの所有者であることの証明になって、ACMは証明書を発行するというわけです。
    image.png
    image.png

  • ACMに戻って10分ほど待つと無事に検証が終わりました。
    image.png

ELBにドメインを紐づける

ELBの環境構築の細かい部分は「AWSでELB環境を作るための覚書」で記載しました。

  • まずはHTTPのターゲットグループを作成します。
    image.png

  • ELBでApplication Load Balancerを作成します。その際リスナーとしてHTTPSを選択します。
    image.png

  • HTTPSのセキュリティ設定を行う画面で「ACMからの証明書を選択する」と、先ほど取得した証明書をアタッチできます。
    image.png

  • あとは通常通りロードバランサを作成します。

    • セキュリティグループのインバウンド側はHTTPS(443)をセットします。
    • ターゲットグループにはHTTP(80)で接続します。
  • 今度は作成したELBをRoute53のホストゾーンに登録します。レコード作成をクリックします。
    image.png

  • レコード名はブランク、レコードタイプはA、トラフィックのルーティング先はエイリアス指定に切り替えることでELBを選択することができます。
    image.png

  • Aレコードを作成してしばらく待つとHTTPSで接続できるようになります。
    image.png

  • 立派な証明書ももらえました。
    image.png

おわりに

ACMの証明書はサーバ認証という簡易的なものですが、パブリックSSLに関しては無料で利用できます。Route53はホストゾーンの維持に少々料金がかかりますので注意。また今回無料のドメインを取得しましたが、Route53で購入すればすべてAWS内で完結することができるので非常にラクですね。
image.png

とはいえ、いろいろな手間を考えると、Webサイトを作るだけならレンタルサーバを利用したほうが圧倒的に手間もコストも少ないと感じました。

参考文献

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?