Imomemo

色々とやっていきたい

S3+CloudFront+ACM(Certificate Manager)で静的サイトのSSL(https)化&高速配信

概要

S3で静的サイトをホスティングし、一般に公開しているところまでは前提とします。 CloudFront+ACM(Certificate Manager)を利用してキャッシュでの配信+SSL化をしたのでメモ。

今回はムームードメインドメインを取得していて、ACMの認証方法は「DNS検証」を使った場合についてです。

流れ

1.ACMで証明書の発行/DNS検証 2.ムームードメインでCNAMEの設定
3.CloudFrontでNew Distributionの作成
4.Route53でAレコードのAliasを書き換える

ACM(Certificate Manager)で証明書発行/DNS検証

Certificate Manageに入り、まず重要なのはリージョンを「バージニア北部」にする必要があることです。

f:id:oimo23:20181108224759p:plain

デフォルトの「東京」のままだと出来ません。
今回適用したドメインを入力し、進んでいくとEメール検証とDNS検証がありますが、メールサーバーが無い場合は面倒なのでDNS検証にします。

すると、CNAMEが発行されるのでそれを取得したドメイン業者(自分はムームードメインでした)にてDNS設定を書き換えます。

CNAMEの設定

ムームードメインの場合

ログイン

ドメイン操作

ムームDNS

注意点ですが、ACM側から指定された内容そのままでは上手くいきません。
下のような形式で入力すると正常に発行されました、少し時間が掛かる場合もあります。

サブドメイン 種別 内容
_77362ffc9dfad530eb678dd039f37ecd CNAME _487bc18e4b360e7ccf6bc3f2008bb5af.tljzshvwok.acm-validations.aws

要するに、サブドメインの部分はサブドメインそのものだけでOK。
内容の方は末尾の「.」が必要ありません。

CloudFront

CloudFrontに入り New Distribution→WebのGet Started選択 f:id:oimo23:20181108224125p:plain こんな感じの画面になります。 「Origin Domain Name」のところをクリックすると自動的に候補が出てくるのでバケットを選択します。

・「Default Cache Behavior Setting」の「Viewer Protocol Policy」を「Redirect HTTP to HTTPS」にする

・「Distribution Settings」の、「Alternate Domain Names [CNAMEs]」を今回適用するドメインにする

・「SSL Certificate」の、Custom SSL Certificateを選択してACMで発行した証明書を選択

そしてDistributionを作成します。

Route53でAレコードのAliasを書き換える

今回SSL化したいドメインの設定画面を開き、Aレコードの部分も既存のものからCloudfrontのDistribution(*******.cloudfront.net)へ書き換えます。

完了

確認してみるとhttps化に成功しています。
注意点としては、少し時間が掛かる場合があるのでその時は一度寝てから見てみましょう。