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に入り、まず重要なのはリージョンを「バージニア北部」にする必要があることです。
デフォルトの「東京」のままだと出来ません。
今回適用したドメインを入力し、進んでいくとEメール検証とDNS検証がありますが、メールサーバーが無い場合は面倒なのでDNS検証にします。
すると、CNAMEが発行されるのでそれを取得したドメイン業者(自分はムームードメインでした)にてDNS設定を書き換えます。
CNAMEの設定
ムームードメインの場合
注意点ですが、ACM側から指定された内容そのままでは上手くいきません。
下のような形式で入力すると正常に発行されました、少し時間が掛かる場合もあります。
サブドメイン | 種別 | 内容 |
---|---|---|
_77362ffc9dfad530eb678dd039f37ecd | CNAME | _487bc18e4b360e7ccf6bc3f2008bb5af.tljzshvwok.acm-validations.aws |
要するに、サブドメインの部分はサブドメインそのものだけでOK。
内容の方は末尾の「.」が必要ありません。
CloudFront
CloudFrontに入り New Distribution→WebのGet Started選択 こんな感じの画面になります。 「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化に成功しています。
注意点としては、少し時間が掛かる場合があるのでその時は一度寝てから見てみましょう。