CloudFrontとELB間をSSLで通信させる
ご機嫌いかがでしょうか、豊崎です。
そろそろ花粉の季節ですね。 昨年鼻水と目のかゆみがひどかったので、アレルギーの検査に行ったのですが、 何のアレルギーもありませんでした。 私の抗体は何に対して鼻水と目のかゆみを出していたのでしょうか。
はじめに
CloudFrontでELBをオリジンとして使うときに、CloudFrontと、ELBにそれぞれACM証明書を割り当てて、 インターネットからCloudFront間、CloudFrontからELB間をSSLで通信させるというケースがよくあります。
証明書の取得や設定に少しだけお作法がありますので、まとめてみたいと思います。
図の様な構成を作成します。
お作法
先にお作法を書きます。
- CloudFrontで利用できるACM証明書はバージニアリージョンで発行されたものだけ!
- ELBにも証明書がいるので、ELBのリージョンでもACMから証明書を発行する
上記はACMを利用した場合ですが、 別の認証局が発行した証明書の場合も同様で各リージョンにインポートする必要があります。
必要なもの
- CloudFront
- CloudFront用ACM証明書 (バージニアリージョンで取得する)
- ELB
- ELB用ACM証明書 (ELBと同じリージョンで取得する)
- EC2
- Route53
やってみる
証明書の準備
まずはCloudFront用の証明書です。 CloudFrontに使用できる証明書は以下の様なものがあります。
- 信頼された認証機関が発行する証明書 (Comodo、DigiCert、Symantec など)
- ACMが提供する証明書
- 自己署名証明書
繰り返しになりますが、CloudFrontでACM証明書を利用する場合はバージニアリージョンで取得する必要があります。
次にELB用の証明書です。 ELBで使用する証明書はELBと同じリージョンで取得を行います。 今回は東京リージョンにELBを作成するので、東京リージョンで証明書を取得します
今回はどちらもワイルドカード証明書を取得しました。
EC2の作成
EC2作成の手順は割愛します。 作成したEC2にはapacheをインストールしておきましょう。
ELBの作成
ELBについてはSSL通信に関する設定箇所をピックアップして説明を行います。
ELBがリッスンするプロトコルをhttps、ポートを443にしましょう。
証明書の選択画面では東京リージョンで発行したACM証明書を選択しましょう。
作成が終わったらRoute53でELBのエンドポイント名に対して Aレコード(エイリアス)設定しておきましょう。 ここではssl-elb-origin.xxxx.comとしました。
当然つながります。(SecurityGroupは適宜設定してください)
CloudFrontの作成
CloudFrontも必要な箇所だけピックアップして説明します。
まずはOrigin Domain Nameです。
ここにはELBのFQDN(ssl-elb-origin.xxxx.com)を入力しましょう。
つぎにCloudFrontは「https://ssl-cfn.xxxx.com」で接続させる予定なので、 Alternate Domain Names(CNAMEs)にはssl-cfn.xxxx.comを入力しておきましょう。
SSL CertificateはCustom SSL Certificateを選択し、 バージニアリージョンで用意をしたACM証明書が選択されていることを確認しておきましょう。
CloudFrontが作成されたらRoute53でCroudFrontのドメイン名に対して Aレコード(エイリアス)設定をしておきましょう。 ここではssl-cfn.xxxx.comとしました。 CloudFrontが作成されるまでしばらく待ちます。
CloudFrontへ接続
ブラウザからhttps://ssl-cfn.xxxx.com/へ接続してみます。
無事、CloudFrontからELBオリジンへ接続が確認できました。
さいごに
以上簡単でしたが「CloudFrontとELB間をSSLで通信させる」でした。 正しく設定してセキュアな通信ライフを送りたいものです。