4. プロトコル概要 (Protocol Overview)
ACME では、クライアントが HTTPS [RFC2818] を通じて転送される JSON メッセージ [RFC8259] のセットを使用して証明書管理操作を要求できます。ACME を使用した発行プロセスは従来の CA の発行プロセスに似ており、ユーザーがアカウントを作成し、証明書を要求し、CA が要求された証明書を発行できるようにドメイン名の制御を証明します。
ACME の最初のフェーズは、クライアントが ACME サーバーにアカウントを要求することです。クライアントは非対称キーペアを生成し、新しいアカウントを要求します。オプションで連絡先情報の提供、利用規約(ToS)への同意、および/または別のシステムの既存アカウントとのアカウントの関連付けを行います。
Client Server
[Contact Information]
[ToS Agreement]
[Additional Data]
Signature ------->
Account URL
<------- Account Object
[] Information covered by request signatures
Account Creation
アカウント登録が完了すると、クライアントは証明書を取得するために 4 つの主要なステップを実行する必要があります。
-
証明書発行オーダー(Order)の提出
-
証明書で要求された識別子(Identifiers)の制御の証明
-
CSR を提出してオーダーを完了
-
発行を待ち、発行された証明書をダウンロード
クライアントの証明書オーダーは、必要な識別子と、CSR フォーマットがサポートしないセマンティクスをキャプチャするいくつかの追加フィールドを記述します。サーバーがそのような証明書の発行を検討する意思がある場合、証明書を発行する前にクライアントが満たさなければならない要件のリストで応答します。
Client Server
[Order]
Signature ------->
<------- Required Authorizations
[Responses]
Signature ------->
<~~~~~~~~Validation~~~~~~~~>
[CSR]
Signature ------->
<------- Acknowledgement
<~~~~~~Await issuance~~~~~~>
[POST-as-GET request]
Signature ------->
<------- Certificate
[] Information covered by request signatures
Certificate Issuance
証明書を失効させるには、クライアントが失効させる証明書を示す署名付き失効リクエストを送信します。
Client Server
[Revocation request]
Signature -------->
<-------- Result
[] Information covered by request signatures
Certificate Revocation
ACME は原則として異なるタイプの識別子を処理するのに十分な柔軟性を持って定義されていますが、本文書が扱う主要なユースケースはドメイン名を識別子として使用する場合です。