ACMでワイルドカード有りの証明書を作成する

目次

最近社内でストレッチが推進されており、日々プチリフレッシュしております。

さて今回はawsのSSL証明書のサービスACMについて
サブドメ込みで発行する方法を書かせていただきます。

サービス運用でルートドメイン(example.com)だけでなく
サブドメイン(dev.example.com)を使って運用したいという要望はよくあることで
今回サブドメインもカバーできるACMの作成を実践していこうと思います。

ACM(AWS Certificate Manager)とは

記事記載以降に更新されている可能性があるため
詳しくは公式ドキュメントを参考にしてください。

かいつまんでいうと、SSL証明書の作成サービスになります。
https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/acm-overview.html

ACMのメリット

1.基本的に利用料が無料
2.nginx / Apacheなどのミドルの設定が不要
3.証明書の更新が不要
4.証明書の発行が10数秒で終わる
5.CSRの作成が不要
6.GUIの管理画面で全て解決できる

ACMのデメリット

1.DV証明書のみの購入となりOV証明書やEV証明書の購入ができない

注意点

ACMの証明書は基本的に無料で使用できるのですが
1つ注意があり、ELBかCloudFrontでしか利用することができません。

またCloudFrontで使用するためには
米国東部 (バージニア北部) リージョンでの作成が必要となります。
詳しくは公式ドキュメントを参考に
https://aws.amazon.com/jp/premiumsupport/knowledge-center/migrate-ssl-cert-us-east/

証明書作成の流れ

証明の作成

では実際に作成してみましょう。
ドメインは既に購入済みで、route53で管理しているものとします。

1.まずACMの管理画面にアクセスし、リージョンが先に書いた通り
「バージニア北部」になっていることを確認し「リクエスト」を選択

2.「パブリック証明書をリクエスト」を選択し「次へ」を選択

3.完全修飾ドメイン名に、今回作成するドメイン名を設定し
「この証明書に別の名前を追加」のボタンをクリックし
ワイルドカードでサブドメ用の設定を追加しましょう。

「*.」を設定することにより、
dev.example.comなどのサブドメがカバーできるようになります。

続いて検証方法については、「DNS検証」を選択し「リクエスト」を選択

awsのroute53でドメイン管理している場合、
DNSレコードにSSL認証に必要なレコードタイプと情報を登録し
こちらは何もせずにSSL認証に必要なことをやってくれる素晴らしい連携具合になっています。

画面はroute53の画面です

4.作成後はステータスが「保留中の検証」という状態になっていますが

10秒ぐらい待つと「発行済み」となり、認証が完了しています。

.作成したドメインの証明書IDのリンク部分をクリックし

先ほど設定した2つのドメインが認証されていることが確認できます。

こちらの設定でワイルドカード込みの証明書が作成できました。
route53でサブドメのレコードを作成し
CloudFrontの代替ドメインにサブドメを設定すれば
期待通りの動きになるかと思います。

ちなみにCloudFront側でサブドメ含む複数のドメインを持たせる場合は
代替ドメイン名 (CNAME)に複数設定で可能になります。
もし複数ドメインを1つのサーバーで捌くという要望があれば対応できますね
※ミドルなどの設定は必要になりますが

route53でドメイン管理していると
awsのドメイン系の連携が必要なサービスの構築が非常にスムーズになるので
積極的に採用していきたいですね!