この記事では、証明書テンプレートに置き換えられた問題の解決策と、ユーザーの AD ストアへの影響について説明します。
元の KB 番号: 2884551
現象
他の証明書テンプレートに置き換えられる証明書テンプレートに基づいて、ユーザーの AD ストアからの証明書の削除は、自動登録の一環として XP/W2k3 で機能しました。
再現手順 (Vista 以降):
- ユーザー自動登録ポリシーを構成します (自動登録構成ウィンドウで、ポリシーが有効になっており、両方のチェック ボックスがオンになっていることを確認します)。
- 重複するユーザー証明書テンプレート (TestTemplate1 など) は、AD で発行されている証明書がアクティブ化されていることを確認し、テンプレートに対する読み取り、登録、自動登録のアクセス許可をテスト ユーザーに割り当てます。
- CA で TestTemplate1 テンプレートを発行します。
- テスト ユーザーとしてログオンし、自動登録を介してテンプレート TestTemplate1 に基づいて証明書を取得することを確認します。
- TestTemplate1 が TestTemplate1 をスーパーシードするスーパーシード タブで設定されている TestTemplate1 (TestTemplate2 など) を複製して新しい証明書テンプレートを構成し、AD での証明書の発行がアクティブになっていることを確認し、テスト ユーザーが TestTemplate2 の読み取り、登録、自動登録のアクセス許可を設定していることを再確認します。
- CA で TestTemplate2 テンプレートを発行します。
- テスト ユーザーとしてログオンし、自動登録で新しいテンプレート TestTemplate2 に基づいてユーザーが証明書を取得することを確認します。
- DC で dsa.msc を開き、テスト ユーザーを見つけ、プロパティを開くと、AD で発行された 2 つの証明書があります。1 つは TestTemplate1 に基づき、もう 1 つは TestTemplate2 に基づいています (XP/W2k3 では、置き換えられるテンプレートに基づく証明書 TestTemplate1 が削除されているため、1 つだけになります)。
原因
この機能は、Vista 以降の Windows バージョンでは削除されました。
解決方法
回避策は、特定のテンプレートによって発行されたすべての証明書を削除することです。V1 テンプレートの場合: certutil -delstore -user ldap: InternalTemplateName V2 以降のテンプレートの場合: certutil -delstore -user ldap: TemplateOID InternalTemplateName はローカライズされていないテンプレート名 (AD のテンプレート オブジェクトの CN) です。 上記のコマンドは、特定のテンプレートを使用して発行された DS ストアからすべての証明書を削除します。
詳細
コードの変更は、証明書ローミング機能が導入された後に発生する問題に対処するために、Windows Vista/2008 の期間中に行われました (たとえば、エンド証明書を別のコンピューターで不明な CSP で作成し、資格情報ローミングを使用してローミングしたり、ローミングされた RSA ベースの証明書の発行元 CA に不明な署名アルゴリズムがある場合などです。> どちらのシナリオでも、最終的な証明書が AD から削除されます。 有効な場合でも)。