こんにちは!イーゴリです。
「どんな目的であってもあまり考えずにACM証明書を使えばよいのでは?」、「AWSで外部の証明書を使いたいが、3種類(DV/OV/EV)のどれを選べばいいか分からない」と思う方がいるかもれないので、AWSで使える証明書を紹介し、それぞれの特徴やユースケースを紹介したいと思います。
証明書の比較表
まずは、比較表を記載しました。もう少し詳しく知りたい方は、是非最後までお読みください。
ACM証明書(DV) | Let's Encrypt(DV) | 外部証明書(DV) | 外部証明書(OV) | 外部証明書(EV) | |
---|---|---|---|---|---|
費用 | 無料 | 無料 | 安 | 中 | 高 |
ウェブサイト運営者の実在確認 | なし | なし | なし | あり | あり |
価格 | 無料 | 無料 | 数千〜1万円程度 | 数万円程度 | 10万円以上 |
認証レベル※1 | 低(1) Domain Validation(DV) |
低(1) Domain Validation(DV) |
低(1) Domain Validation(DV) |
中(2) Organization Validation(OV) |
高(3) Extended Validation(EV) |
暗号強度 | 強 | 強 | 強 | 強 | 強 |
発行までの期間 | 数分程度 | 数分程度 | 数分程度 | 1週間〜2週間程度 | 2週間〜4週間程度 |
個人/法人 | 個人/法人 | 個人/法人 | 個人/法人 | 法人 | 法人 |
導入/管理難度 | ◎低 ・ 導入が一番簡単 ・1回DNS検証で登録すると証明書が自動更新される |
△高 ・証明書の発行/更新するにはある程度の技術レベルが必要 ・3ヶ月ごとに自分で更新する必要がある |
◯低 ・証明書の内容をコピペレベルで導入できる ・自分で更新する必要があるが、証明書の有効期限が長い |
◯低 (←「外部証明書(DV)」と同様) |
◯低 (←「外部証明書(DV)」と同様) |
ワイルドカードの発行 | 可 | 可 | 可 | 可 | 不 |
※1 認証レベル:
認証レベル1 – Domain Validation (ドメイン認証型): ドメインが正しいかどうかについての認証
└ACM証明書
└Let's Encrypt証明書
└外部(AWS外)証明書
認証レベル2 – Organization Validation (実在証明型): ドメインに加えて、管理者の実在性までを証明
└外部(AWS ACM外)証明書
認証レベル3 – Extended Validation (実在証明拡張型): 最も高いレベルの認証
└外部(AWS ACM外)証明書
AWS Certificate Managerとは
AWSでは、AWS Certificate Manager(ACM)というサービスがあり、AWS サービスと内部接続リソースで使用するパブリックおよびプライベート SSL/TLS 証明書をプロビジョニング、管理、および展開します。ACMを使用すれば、SSL/TLS 証明書の購入、アップロード、および更新という時間のかかるプロセスを手動で行う必要がなくなります。
AWSでは、ACMが提供するパブリック証明書(以下、ACM証明書)(無料)、外部証明書(有料)、Let's Encrypt証明書(無料)が使えるので、証明書を選択する際の見分け方を紹介します。
ACM証明書 (DV)
まずはACM が提供するパブリック証明書(以下、ACM証明書)を検討するのが良いと思います。理由としてはACM証明書は無料でパブリック証明書が発行でき、更新時期がきたら、自動的に(DNS検証方法の場合)更新されます。
ACM証明書を1回登録すると(DNS検証方法の場合)、ACMの存在について忘れていいぐらいのレベルで、とても便利な証明書です。
但し、すべてのケースにACM証明書を使ってもいいというわけではありません。下記のページに注意点が記載してありますが、一番重要なポイントは「ACM は、拡張検証 (EV) 証明書または組織検証 (OV) 証明書を提供していません。」と「ACM 証明書のプライベートキーをダウンロードすることはできません。」だと思います。
簡単に説明しますと、
- ①証明書の信頼性を高めるために組織や会社についての情報を入れる必要がある場合、ACM証明書の代わりに外部証明書(OV/EV認証)を検討する必要があります。
- ②ACMで発行された証明書はダウンロードできません。つまり、AWSサービスレベルでは使えますが、AWSサービスレベル外(EC2内など)やオンプレミスでは使えないので、外部証明書 (DV/OV/EV)を検討する必要があります。
ACM証明書の中身
- 証明書の認証局(CA)は「Amazon」になります。
外部(AWS ACM外)証明書
イメージ図
DV証明書
ドメイン認証証明書(Domain Validation証明書)とは、個人でも法人でも発行できる証明書です。特定のドメインの所有者であることをWHOISに含まれる情報を使って機械的に発行処理を行うため、だれでも簡単に発行できる証明書です。暗号化通信のみ保証されていますが、ドメインの所有者は合法的なビジネスの所有者であることを証明するものではありません。
例えば、example.comではなく、eexample.comなどのようなサイトに入ってしまうと、DV証明書だとドメインによる検証のみなので、eexample.com用の証明書が正しく表示されてしまい、警告なども発生しません。なぜなら、合法的なビジネスに関係なく、ドメイン名が証明書と一致しているからです。合法的なビジネスであることはOV/EV証明書を発行する場合のみ、確認できます。
オンライン決済/個人情報の収集などのようなサイトでなければ、特に問題なく使える証明書だと思います。
ちなみにACM 証明書もLet's Encrypt 証明書もDV証明書です。
ACM証明書は無料ですが、外部DV証明書は有料です。
AWS上で、ACM証明書があるので、外部DV証明書を検討するパターンは少ないですが、下記のようなパターンに関してDVを検討する必要があります。
- AWSサービスを使わない/オンプレミスを使う場合
- AWSサービスレベル外(EC2内など)に証明書を入れたい場合
- 下記の制限に引っかかった場合
DV証明書を使用するWebサイトの例:
- ブログ
- 取引を行わないまたは個人情報を収集しないWebサイト
上記の例はあくまで私の意見なので、会社の判断によって証明書のタイプは異なります。
DV証明書の中身
組織情報がなく、CN(Common Name)しか表示されていません。
「件名」にCN(Common Name)の情報しか表示されていません。
OV証明書
企業認証証明書(Organization Validation証明書)とは、DVと同じくドメインの所有者を検証し、 URLに関連するビジネス組織を認証する証明書です。
OV証明書を使うパターン
- オンライン決済Webサイト
- 取引を行うまたは個人情報を収集するWebサイト
上記の例はあくまで私の意見なので、会社の判断によって証明書のタイプは異なります。
OV証明書の中身
組織情報があります。
「件名」にCN(Common Name)以外、会社についての簡易な情報の記載があります。
EV証明書
拡張認証証明書(Extended Validation証明書)とは、OV+関連事業の法的実体の認証を要件とする、保証度の高い電子証明書です。重要なポイントとしては、ワイルドカードは使えないという制限があるので、サブドメインごとにEV証明書を発行しないといけません。
例:
- 使えないパターン:*.example.com
- 使えるパターン:1.example.com、2.example.com、3.example.com
以前はEVの場合、ブラウザー上のアドレスバーにサイト運営会社名が表示されていましたが、最近のブラウザーでは運営会社名の表示がされなくなったので、他の証明書と同等の表示の仕方になりました。
以前の表示の仕方
現在 (2024.5)の表示の仕方
EV証明書を使用するWebサイトの例:
- オンライン決済(オンラインショップやネット銀行/証券)Webサイト
- 金融機関Webサイト
- 公共団体Webサイト
- 保険会社Webサイト
- 有名ブランドのWebサイト
上記の例はあくまで私の意見なので、会社の判断によって証明書のタイプは異なります。
EV証明書の中身
組織情報が記載されています。
「件名」に、OV証明書よりも詳しい会社についての情報が記載されています。
さらに、OV証明書と違い、EVの証明書には「証明書は有効です」の下に「発行先」が記載されます。
一方、OV及びDV証明書の場合、証明書の詳細情報を開かない限り、「発行先」は確認できません。
EV と OV の違い
EVとOVはともに本物の確認をしますが、EVはOVよりもきめ細かい調査を行っています。 例えば、設立から日が浅い会社で、かつ様々な規格が定める基準を満たさない場合、長年存在している会社よりも詳しく調査します。
Let's Encrypt証明書 (DV)
Let's Encrypt証明書とは、ドメイン認証(DV)証明書のことで、暗号化通信とドメイン名の所有者名義を確認する証明書です。 有効期限が90日なので、Let's Encrypt証明書を3ヶ月ごとに更新する必要があります。
検証環境やブログなどにとってはLet's Encrypt証明書を使っても問題ないと思いますが、商用サイトでの利用は、サービス提供者やサイト運営の責任という観点から、無償SSLの利用はあまり望ましくありません。
ドメイン数が増えれば増えるほど管理する手間がかかりますので、SSL/TLS 証明書について社員の高い技術レベルが必要です。その上、Let's Encryptに技術サポートなどはありませんので、何かあったら自分の力で対応しないといけません。
どんなサポートが受けられますか?
Let’s Encrypt は少人数のチームで運営されており、コストを削減するために自動化に頼っています。 このような背景があるため、利用者に対して直接的なサポートを提供することはできません。 しかし、以下のような優れたサポートオプションを提供します。
- 私たちは非常に役に立つドキュメントを提供します。
- 私たちには非常に活発で助け合いのあるコミュニティ・サポート・フォーラムがあります。
私たちのコミュニティのメンバーはたくさんの質問に答えてくれており、よくある質問の大部分にはすでに回答が存在しています。
ちなみに、私個人で持っているサイトではLet's Encrypt証明書を使っていますが、導入/管理は一切していません。私が使っているWebホスティング側で、Let's Encrypt証明書に関してのすべての処理(発行/更新など)が自動化されているので、一切手を加えることなく無料で使えるので、そういう意味ではLet's Encrypt証明書はとても便利です。
但し、自分でLet's Encrypt 証明書を運用する場合、下記のようなケース(過去事例)があるため、更新/再発行は自分で対応する必要があります。
また、注意点としてはLet's Encrypt 証明書の制限(週当たりの発行数など)があるので、下記のページをご参考ください。
一番重要なポイントを下記に箇条書きで記載しますが、制限事項が更新される可能性があるので、上記のURLを参考にすることをおすすめします。
2024/5時点
- 登録ドメインごとの証明書数:1週間に50個までです。
- サブドメインを多数持っている場合は、最大で証明書ごとに 100 ドメイン名まで1つの証明書に統合できます。
- 登録ドメインごとの証明書数の制限にカウントされませんが、1週間に 5 つまでの証明書の発行の複製の制限の対象とはなります。
- IP アドレスごとのアカウント数の最大は、3時間毎に 10 個までです。また、IPv6 /48 の範囲に含まれる IP レンジごとのアカウント数の最大は、3時間毎に最大 500 個までです。この2つのアカウントに関するレート制限の上限を超えることは極めて稀です。大規模なインテグレータには、多数の顧客を扱うために1つのアカウントを使う設計を採用することをおすすめします。
- 認証の待機は、アカウントごとに最大で 300 まで可能です。
- リクエスト全体に対する毎秒 20 回の制限があります。"/directory" と “/acme” ディレクトリおよびサブディレクトリのエンドポイントには、リクエスト全体に毎秒 40 回の制限があります。
- オーバーライド→レート制限に引っかかった場合、制限を一時的にリセットする方法はありません。
Let's Encrypt証明書の中身
証明書の認証局(CA)はLet's Encryptとなります。
DVのため、CNしかありません。
まとめ
多くのケースでは、SSL/TLS 証明書はACM証明書でカバーできますが、経済系(オンライン決済など)やガバナンスやブランド力を強化したい場合などはOV/EV外部証明書を検討したほうがいいかもしれません。AWS環境でACM証明書があるため、AWSサービスレベル上ではLet's Encrypt証明書を使うメリットはあまり見えませんが、AWSサービスレベル外(EC2内など)及びオンプレミス環境で無料のDV証明書を使えるという大きなメリットがあります(但し、数が増えれば増えるほど、運用する負担が大きくなります)。
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽