ACME(Automatic Certificate Management Environment)は、クライアントと認証局(CA)間のデジタル証明書の申請、検証、発行、および更新を自動化するプロトコルです。これは、手動による証明書の登録をAPIによるやり取りに置き換えるものであり、Versa デバイスはリリース22.1.3以降、これを証明書サーバータイプとして利用できるようになります。
主なポイント
- ACMEは、APIを通じて証明書の発行、検証、更新を自動化します。
- これにより、CSRの手動生成や証明書のインポートといった手順が不要になります。
- ドメインまたはデバイスの制御は、自動化された認証要求によって確認されます。
- IETFはRFC 8555においてACMEを標準化しました。Let’s Encryptによってその普及が進みました。
- Versa リリース 22.1.3 以降、各デバイスは証明書サーバーの種類として ACME をサポートしています。
このページの内容: その重要性仕組み種類ACME &Versaよくある質問
ACMEはなぜ重要なのでしょうか?
すべてのTLS証明書には有効期限があり、気づかれないまま期限が切れると、その証明書が支えているサービスが停止してしまいます。これは、サービス停止のよくある原因ですが、回避可能なものです。ACMEが登場する前は、証明書を最新の状態に保つには、管理者がCSRを生成し、それをCAに提出し、古い証明書の有効期限が切れる前に発行された証明書をインポートする必要があり、この作業をすべてのホストと更新サイクルごとに繰り返さなければなりませんでした。
ACMEは、その手動のワークフローを自動化されたAPI交換へと変えます。 クライアントは証明書をリクエストし、識別子の管理権限を証明することで、人の介入なしに署名付き証明書を受け取ります。その後、必要なだけ何度でも同じ方法で更新が可能です。この自動化により、有効期間が短い証明書も大規模な導入が可能になりました。Let’s Encryptの無料かつACMEベースのCAは、HTTPSの普及を大々的に推進し、現在ではこの同じパターンが、定期的な証明書ローテーションを必要とする社内PKI、IoTデバイス群、ネットワーク機器にも広がっています。
ACMEとは何ですか?
ACMEのやり取りは、ACMEクライアント(証明書を要求するデバイスまたはソフトウェア)と、認証局(CA)が運用するACMEサーバーとの間で行われます。クライアントは鍵ペアを使用してCAにアカウントを登録し、その後、認証を希望する1つ以上の識別子(通常はドメイン名)を指定して注文を送信します。
クライアントは、これらの識別子を管理していることを証明するために、CAが発行する1つ以上の検証課題を完了します。検証に成功すると、クライアントはその注文に対するCSRを送信し、CAは署名済みの証明書を発行してダウンロード可能にします。すべてのメッセージはHTTPS経由のJSON Web Signature(JWS)リクエストであるため、注文、検証、確定、ダウンロード、そしてその後の更新に至るまでのライフサイクル全体が、人が手動でファイルを生成したり、各ステップを承認したりすることなく行われます。
ACMEチャレンジの種類
ACMEでは、識別子の管理権限を証明するためのいくつかのチャレンジタイプが定義されています。HTTP-01では、クライアントがポート80の既知のURLでトークンを配信し、CAがそれを取得してWebサーバーの管理権限を確認します。DNS-01では、クライアントがドメイン下にTXTレコードを公開します。これは公開Webサーバーがなくても機能し、ワイルドカード証明書の場合に唯一の選択肢となります。TLS-ALPN-01では、ポート443でのTLSハンドシェイク中に、自己署名証明書内のトークンが提示されます。
チャレンジの種類に加え、ACMEはプロトコルのバージョン変更も経てきました。初期のLet’s Encryptクライアントで使用されていたオリジナルのACMEv1は非推奨となり、現在はRFC 8555で標準化されたACMEv2が採用されています。ACMEv2では、v1にはなかった明示的な順序リソースモデルとワイルドカード証明書のサポートが追加されています。
ACME &Versa
VOS デバイスは、リリース 22.1.3 以降、CMP、SCEP、KMIP、GCP、CRL と並んで、証明書サーバーの種類の一つとして ACME をサポートしています。 管理者は、Directorのデバイスごとの「Certificate Manager」([Configuration] > [Objects & Connectors] > [Connectors] > [Certificate Manager] > [Servers])から、サーバータイプとして「ACME」を選択し、CAの登録URL、再試行間隔、およびCAへの接続に使用するインターフェースを入力することで、これを追加します。 また、リリース 22.1.3 では「デフォルト CSR」機能が追加され、CSR の各属性を手動で指定する必要がなく、デバイス ID を共通名として使用して署名要求を自動生成できるようになりました。
このオプションは、ワークフローのより早い段階でも表示されます。Concertoで証明書認証(リリース12.1.1以降)を使用してSecure SD-WAN テナントを作成すると、「証明書」ステップが追加され、そのテナントのCAについて「サーバータイプ」をACME、CMP、またはSCEPに設定できるようになります。 サーバーが定義されると、証明書リクエストでは有効期間、自動更新のオン/オフ、および更新のしきい値が指定されます。これにより、デバイスに発行されたACME証明書は、手動で管理する必要がなく、有効期限が切れる前に自動的に再発行されます。
よくある質問
ACMEとは何の略ですか?
ACMEは、Automatic Certificate Management Environment(Automated Certificate Management Environmentとも表記される)の略称であり、IETF RFC 8555で標準化されています。これは、クライアントと認証局の間で、手動による手順を必要とせずに、デジタル証明書の要求、検証、発行、および更新を行うためのAPIを定義しています。
ACMEは、ドメインやデバイスの管理権限をどのように証明するのでしょうか?
ACMEは、特定のURLでトークンを配信する(HTTP-01)、DNS TXTレコードを公開する(DNS-01)、またはTLSハンドシェイク中にトークンを提示する(TLS-ALPN-01)など、1つ以上のチャレンジを発行します。認証局は、クライアントがチャレンジを正常に完了した後にのみ、証明書を発行します。
Versa は、証明書の登録にACMEに対応していますか?
はい。リリース 22.1.3 以降、VOS デバイスは、Director の「Certificate Manager」でデバイスごとに設定するか、Concerto における「Secure SD-WAN 」テナントの証明書認証用の CA タイプとして、CMP、SCEP、KMIP、GCP、および CRL サーバータイプと並んで、ACME を証明書サーバータイプとして使用できるようになりました。
Versa デバイスにおけるACME、SCEP、CMPの違いは何ですか?
これら3つはすべて、VOSデバイスが登録できる証明書サーバーの種類です。ACMEはIETFが策定した、API駆動型の自動化プロトコルです。SCEPはSimple Certificate Enrollment Protocol(簡易証明書登録プロトコル)であり、CMPはCertificate Management Protocol(証明書管理プロトコル)です。Versa では、これら3つすべてを、証明書サーバーオブジェクトの「サーバータイプ」の選択肢として、同じ方法で設定します。
VOSデバイスは、ACME証明書をどのように自動的に更新するのですか?
VOSデバイスでの証明書リクエストでは、「自動更新」のオン/オフ切り替え機能と更新閾値がサポートされています。更新閾値とは、証明書の有効期間の一定割合に達した時点で自動的に更新が開始される設定であり、これにより、デバイスは現在の証明書が失効する前にACMEサーバーから新しい証明書をリクエストします。
ACMEの詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 8555: 自動証明書管理環境 | NIST コンピュータセキュリティ・リソースセンター |
|---|---|
| IETFの中核となる標準規格:ACMEクライアントと認証局が、HTTPSを介して注文、チャレンジ、および発行済み証明書をどのようにやり取りするか。 | NISTのセキュリティリソースハブ。PKIや証明書ライフサイクルに関するガイダンスを網羅しており、ACMEの実装はこのガイダンスに基づいて構築されています。 |
関連用語
ACMEについてお読みになっているなら、次はこれらもぜひチェックしてみてください。
| 認証局 | 証明書署名要求 | オンライン証明書ステータスプロトコル |
|---|---|---|
| ACMEが通信を行う信頼されたエンティティ:これは、チャレンジの検証を行い、ACMEが要求する証明書に署名します。 | ACMEが自動化する処理:通常は手作業で生成されるクライアントの公開鍵および身元情報。 | ACMEによって発行された証明書が、その後失効していないかどうかをリアルタイムで確認します。 |