ACMのアスタリスク証明証のスコープと独自ドメインレベル
SSLにしたい以下の独自ドメイン
- sample.com
- admin.sample.com
- dev01.sample.com
- dev02.sample.com
- admin.dev01.sample.com
- admin.dev02.sample.com
をELB(ALB)のhttpsリスナーでACM設定して全部やろうとした。でも、少しハマッた。
最初に作ったACMのパブリック証明書
ACMのパブリック証明書の「ドメイン名の追加」で「この証明書に別の名前を追加」しながら以下2つのドメイン名で作った
- sample.com
- *.sample.com
結果
admin.dev01.sample.com と admin.dev02.sample.com でブラウジング出来ない。
原因
*.sample.com は第3レベルドメインをカバーしているけど、admin.dev01.sample.comやadmin.dev02.sample.comの第4レベルドメインをカバーしていない。スコープ外。よく考えれば当たり前のことです。
削除して作り直したACMのパブリック証明書
今度は以下のようにACMの現状のパブリック証明証を削除して作り直した。
- sample.com
- *.sample.com
- *.dev01.sample.com
- *.dev02.sample.com
全部、SSLでブラウジング出来た。
ちょっとだけ大事な蛇足
ELBを複数使ってお金を払うならOKですが、ELBを1台で済ませる場合、ELB(ALB)のhttpsのリスナー設定にSSL証明書を2つ以上で複数設定出来ますが、ACMの証明証は全部のドメイン名を1つの証明書にまとめること!ELB(ALB)のhttpsのリスナーには基本的にSSL証明証を1つだけ設定すること!なぜなら、複数証明証だとブラウジング出来ない場合があるから。
と言うのも、最初に作ったACMとは別で、
- *.dev01.sample.com
- *.dev02.sample.com
だけで2つ目のACMのSSL証明証を作ってELBのhttpsのリスナーにSSL証明証を2つ目として追加したらブラウジング出来なかった。
つまり、ACMのSSL証明証を削除して作り直す前に、ELBのhttpsのリスナーからACMのSSL証明証を削除する必要があるので、一度、SSLを全部無しにする時間が発生する!
Development環境、Staging環境、・・・、などについて、後から自由にサブドメインをSSLで追加編集出来る!と考えていると上記の様に困ります!Production環境までも巻き込んでいるとしたら厄介です。第4レベルドメイン、第○レベルドメインまで、Route53のパブリック/プライベートホストゾーンも含めてプロジェクト開始前に将来の拡張を見越してACMを設定しましょう。