次の方法で共有


証明機関の更新

Certificate Services では、証明機関 (CA) の更新がサポートされます。 更新とは、CA が元の証明書の終了日を超えて CA の有効期間を延長するための新しい証明書を発行することです。 CA は、証明機関 MMC スナップイン内のタスクとして、または Certutil.exe ツール (-renewCert コマンドを使用して) を使用して更新できます。

各更新では、新しい CA 証明書が作成されます。ただし、管理者は、新しい公開キーと秘密キーのペアを生成するか、CA 証明書の既存の公開キーと秘密キーのペアを再利用できます。 整合性と整合性のために、CA 証明書と 証明書失効リスト CA によって発行された CRL (CRL) は、CA の更新後に更新できるようになります。 これらを使用できるようにするために、Certificate Services は CA 証明書、CRL、およびキーのインデックスを保持します。

さまざまな CA 更新操作中の CA 証明書と CRL のインデックス名とサフィックス名は次のとおりです。

操作 CA 証明書インデックス CA 証明書ファイル名サフィックス CRL とキー インデックス CRL とキー コンテナー名のサフィックス
元の CA のインストール 0 "" 0 ""
新しいキーを使用した更新 1 "(1)" 1 "(1)"
更新の再利用キー 2 "(2)" 1 "(1)"
更新の再利用キー 3 "(3)" 1 "(1)"
新しいキーを使用した更新 4 "(4)" 4 "(4)"
更新の再利用キー 5 "(5)" 4 "(4)"
新しいキーを使用した更新 6 "(6)" 6 "(6)"
更新の再利用キー 7 "(7)" 6 "(6)"

 

CA がインストールされている場合、証明書インデックスは 0 で、証明書サフィックスは "" (空の文字列) になります。 証明書が更新されるたびに (キーが再利用されるかどうかにかかわらず)、証明書インデックスは 1 ずつインクリメントされ、証明書ファイル名のサフィックスは "(n)" という形式の文字列になります。ここで、n は CA 証明書が更新された回数を表します。 最初の更新後、証明書インデックスは 1 で、証明書ファイル名のサフィックスは "(1)" になります。 2 回目の更新後、証明書インデックスは 2 になり、証明書ファイル名のサフィックスは "(2)" になります。

CA 証明書のインデックスとサフィックスは CA が更新されるたびに 1 ずつインクリメントされますが、更新プロセスに新しい公開キーと秘密キーのペアが含まれている場合にのみ、CRL とキー インデックス、およびファイル名サフィックスが CA 証明書インデックスに設定されます。 そうでない場合、これらのインデックスとサフィックスの値は、最後のインデックスの値と同じままです。 更新時に、管理者は新しいキー ペアを生成するか、既存のキー ペアを使用するかを指定します。 (証明機関 MMC スナップインでは、ユーザー インターフェイスのオプションによって新規または既存のキー ペアが指定されます。Certutil.exe ツールでは、コマンド certutil -renewCert は新しいキー ペアで CA を更新し、certutil -renewCert ReuseKeys コマンドは既存のキー ペアで CA を更新)。

CRL インデックスはキー インデックスに直接関連付けられます。キー インデックスは、更新に新しいキー ペアが使用された場合にのみ CA 証明書インデックスに設定されます。 最初の更新 (新しいキー ペアを使用) の後、CRL とキーのインデックスは 1 に設定され、CRL とキー コンテナー名のサフィックスは "(1)" になります。 ただし、2 回目の更新後、CRL とキーのインデックスは 1 のままになり、CRL とキー コンテナー名のサフィックスも "(1)" のままです。これは、2 つ目の更新で既存のキー ペアが使用され、CA キー ペアごとに 1 つの CRL のみが発行されるためです。

インデックス付き CA 証明書と CRL を取得するには、GetCertificateProperty メソッド (ICertServerExit と ICertServerPolicyインターフェイスの両方) を呼び出します。 CA 証明書または CRL に関連する特定のプロパティを取得する場合は、CA 証明書の 0 から始まるインデックスをプロパティ名に追加できます。 たとえば、CA の 3 番目の証明書に対応する CRL インデックスを取得するには、プロパティ "CRLIndex.2" を ICertServerPolicy::GetCertificateProperty渡します。テーブルの場合、取得した "CRLIndex.2" プロパティ値は 1 になります。 "CertCount" というプロパティを使用して、CA 証明書が発行された回数を確認できます。

CA 証明書と CRL には、証明書とキー インデックスに関する情報を提供する拡張機能が含まれています。 拡張機能は Wincrypt.h で szOID_CERTSRV_CA_VERSION として定義され、値は "1.3.6.1.4.1.311.21.1" です。 拡張データは、DWORD 値です (拡張機能ではX509_INTEGERとしてエンコードされます)。下位 16 ビットは証明書インデックス、上位 16 ビットはキー インデックスです。

CA の初回インストールでは、証明書インデックスが 0、キー インデックスが 0 になります。 CA 証明書を更新すると、証明書インデックスがインクリメントされます。 キーが更新で再利用される場合、キー インデックスは前のキー インデックスと同じになります。 キーが再利用されない場合、キー インデックスは新しい証明書インデックスと一致します。

ICertServerPolicy::GetCertificateProperty

ICertServerExit::GetCertificateProperty