AWSの証明書についてまとめています。
AWSの証明書 SSL/TLS証明書を発行・更新
AWSの証明書サービス AWS Certificate manager
AWS Certificate Managerは、SSLやTLS証明書を発行、更新、管理できるサービスです。一般にウェブで利用するパブリックと、企業内ネットワークなどで使うプライベートでの認証が可能です。
関連)AWS Certificate Manager(SSL/TLS 証明書のプロビジョン、管理、およびデプロイ)| AWS
SSL証明書は、ウェブサーバの通信をSSLで暗号化するために必要です。特に、フォームに名前や住所などの個人情報を入力するケースでは必須です。SSL証明書を入手することで、ウェブサイトをhttpsで始まるURLにすることができ、ウェブサイト上でユーザがアクセスしたページや入力したデータを外部に漏らさないように暗号化できるんですね。
AWS Certificate Managerでは、パブリックまたはプライベートのSSL/TLS証明書を無料で発行できます。ただし、以下の特定のAWSサービスにのみ適用できるんですね。
・AWS ELB(Elastic Load Balancing)
・Amazon CloudFront
・Amazon API Gateway
・AWS Elastic Beanstalk
・AWS CloudFormation
そのため、「AWSで無料でSSL証明書を発行して、EC2インスタンス上のWebサーバや、Lightsailで使用する」といったことはできません。また、AWS外のレンタルサーバなどでSSL証明書のみを利用することもできません。上記のAWSサービスは有料サービスなので、証明書発行は無料でも利用するAWSサービスで料金が発生するんですね。
また、プライベート証明書の場合は、証明書発行には料金がかかりませんが、プライベートCAの維持に料金がかかります。
AWS Certificate Managerの証明書発行
AWS Certificate Managerの管理画面を呼び出すには、AWSマネジメントコンソールにて検索欄に「Certificate」と入力し、Certificate Managerをクリックします。
【関連記事】
▶AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!
AWS Certificate Managerの管理画面が表示されます。「証明書をリクエスト」をクリックします。
証明書タイプを選択します。なお、プライベート証明書は、ブライベート認証CAを作成しておかないと選択することができません。ここでは、パブリック証明書をリクエストにチェックがついていることを確認して、「次へ」をクリックします。
「パブリック証明書をリクエスト」の画面に遷移します。証明書を発行したいドメイン名と、ドメイン所有権の検証方法を選択(ここでは、「DNS検証」を選択)し、「リクエスト」をクリックします。
DNS検証とは、DNSのレコードを書き換えることによって、そのドメインの所有者が確かにあなたであるということを確認することを指します。
AWS Certificate Managerの左ナビゲーションペインにて「証明書を一覧」をクリックします。ナビゲーションペインは折りたたまれて3本線のアイコンになっていることがあるのでクリックして展開します。先ほどリクエストした証明書が「保留中の検証」というステータスで表示されます。証明書IDのリンクをクリックします。
証明書の内容のドメイン名と、CNAME名、CNAME値をメモ帳などにコピーします。
これらの値をDNSに設定することで、ドメインの所有権検証をおこなうんですね。DNSは、レジストラ(お名前.comなど)で取得した場合は、レジストラが用意したネームサーバが設定されていることが多いです。
指定のドメインのネームサーバを調べるには、digテストをおこないます。「ホスト名(FQDN)」にドメイン名を入力し、dig実行をクリックします。
結果のNSレコードの値を確認し、どのドメインのネームサーバが参照されているかを確認します。
ネームサーバにて、先ほど証明書の画面でメモ帳にコピーした値を使って、DNSにレコードを作成します。
CNAME = _e4698ba05630fa4ab8736e2f90b8b697.myexample.com. CNAMEの値 = _894f09c4256990acc2a78e84c56742f0.ljbhxbcwgb.acm-validations.aws.
たとえば、DNSとしてAmazon Route 53を参照している場合は、以下のように設定します。
【関連記事】
▶AWSのドメインネームサービスRoute53を使ってみよう!
ホストゾーンmyexample.comに、以下のようにCNAMEが作成されました。
以上でSSL証明書が発行されます。
AWSの証明書の更新と管理
SSL証明書の有効期限は、2021年現在で13ヶ月です。したがって、13ヶ月ごとに ACM(ASW Certificate Manager)と連携しているElastic Load Balancing や API Gatewayなどで使っている証明書を新しく発行して差し替える更新作業が必要になるんですね。この更新とデプロイの作業を自動化することができます。
自動化することで、証明書の更新忘れによるセキュリティインシデントを防止できます。
なお、ACMプライベートCA APIを利用して、オンプレミス、EC2インスタンス、IoTデバイスに対するプライベート証明書の作成と更新をACMで自動化することが可能です。
AWSの証明書の料金
AWSの証明書は、発行に関してはパブリックでは無料。プライベートCA(認証局)の維持に料金がかかります。プライベートCAの両気温は、リージョンで月に作成されるプライベート証明書数に課金されます。あくまでプライベートCAの維持費用という名目になっていますが、プライベート証明書1件あたり料金が加算されるため、「プライベート証明書の発行は有料」と考えることもできます。
- 月/リージョンで作成されたプライベート証明書の数 1~1,000 = 証明書一件あたり 0.75USD
- 1,001~10,000 = 証明書一件あたり 0.35USD
- 10,001 以上 = 証明書一件あたり 0.001USD
また、オンライン証明書ステータスプロトコル(OCSP)では、応答生成ごとに料金がかかります。
- プライベート CA が証明書に対して OCSP 応答を生成した場合、証明書 1 枚につき 0.06 USD/月。1 か月の間に証明書に対するクエリがなかった場合は、料金は発生しない。
- 100,000 件の OCSP クエリにつき 0.20 USD (CA ごと)
関連)料金 – AWS Certificate Manager | AWS
AWSの証明書のまとめ
- AWS Certificate managerにて、パブリック・プライベートのSSL/TLS証明書の発行が可能
- パブリックSSL/TLS証明書の発行は無料。ただし、発行された証明書はAWSの特定のサービスでのみ使用可能
- プライベートSSL/TLS証明書は、事実上証明書ごとにプライベートCA使用料として料金が発生