Automatic Certificate Management Environment (ACME)
Automatic Certificate Management Environment (ACME)は、RFC 8555でIETFによって公開されるプロトコルおよびフレームワークであり、ドメイン検証が必要な証明書の署名と作成のために使用できます。
プロトコルでは、ドメイン名の制御によってのみ実行できるアクションをACMEクライアントで実行することで、CAによるHTTPSを介したJSON形式のメッセージを使用して、ドメイン所有権の検証が自動的に処理されます。 たとえば、CAはDNSレコードのプロビジョニングをリクエストすることも、特定のHTTPリソースをドメイン名でWebサーバーで利用可能にするようにリクエストすることもできます。
CAは、証明書をリクエストしているエンティティがドメインの所有権を持っていることを検証した後、ACMEクライアントから送信された証明書に署名できます。 通常、クライアントは、システムで実行されているサービスが使用できる場所に証明書を自動的にインストールできます。
ACMEによって、公開キー・インフラストラクチャの管理に関連するコストと複雑度が軽減されます。 場合によっては、CAの選択に応じて、ドメイン内のシステムの署名証明書を無料で取得できることがあります。 たとえば、ACMEプロトコルの作成者であるLet's Encryptは、無料のオープンCAサービスを提供しています。 他の商用CAも、無料のACMEベースの証明書を提供し始めています。
ACMEプロトコルの最初のバージョンを使用して単一のドメイン証明書のみを作成することはできますが、ACME v2は、ワイルドカード・ドメイン(*.example.comなど)を使用した証明書の作成および署名に使用できます。 したがって、すべてのサブドメインで単一の証明書を使用できます。 ACMEではドメインのみが検証されることに注意してください。 より多くの検証が必要な証明書が必要な場合は、ACMEを超えるサービスを提供する確立されたCAから署名証明書を取得することが必要になる場合があります。
TLS/SSL保護されたサービスを使用するためにインフラストラクチャ全体で証明書を作成および発行する必要がある場合は、ACMEと連携するCAを使用し、ACMEクライアントを使用することを検討してください。 ACMEは、キー・ペアとCSRを自動的に生成し、CSRを検証のためにCAに送信し、CAの検証ステップを実行して、署名証明書を取得し、サービスおよびアプリケーションがアクセスできる場所に格納できます。 多くのクライアントは、定期的なcronタスクを自動的に設定して、証明書の有効期限をチェックし、現在の証明書の期限が切れる前に新しい証明書を自動的にリクエストします。