CloudFront には、AWS ロードバランサー (ELB,ALB) と同じように ACM (Certificate Manager) で無料で作成したSSL証明書を適用することができます。
ポイントは、us-east-1 (バージニア北部) リージョンのACM で作った証明書のみ選択できるというところです。
1. ACMでSSL証明書を作る
1-1. us-east-1 の ACM へ行く https://console.aws.amazon.com/acm/home?region=us-east-1#/
1-2. 証明書のリクエスト をクリック
1-3. パブリック証明書のリクエスト → 証明書のリクエスト
1-4. ドメイン名を入力。「この証明書に別の名前を追加」すると、SSL証明書の SAN (Subject Alternative Name ) になる。
1-5. 検証方法はお好みで。DNSだと、使用後にレコードを消さないと後々レコードを見つけた時に混乱の原因になるので、削除するひと手間が多くかかる。Eメールの方が好み。
検証が終われば、SSL証明書が使えるようになります。
2. CloudFront に適用する
2-1. CloudFrontの、Distribution Settings を開く
2-2. Alternate Domain Names に、使うドメインを書く
2-3. SSL Certificate で Custom SSL Certificate (example.com): を選ぶと、us-east-1 (バージニア北部) リージョンのACMで作った証明書の一覧が出てくる。
先程作ったSSL証明書を選択。
これで 独自ドメインのSSL証明書が CloudFront で使えます。
あとは、DNSで、使うドメインのCNAME を CloudFront のドメイン (xxxxxxxxxxx.cloudfront.net) に向ければ、独自ドメインのHTTPリクエストがSSL通信でこの CloudFront を経由するようになります。