如何解除委任 Windows 企業證書頒發機構單位並移除所有相關物件

此逐步解說文章說明如何解除委任 Microsoft Windows 企業 CA,以及如何從 Active Directory 目錄服務移除所有相關物件。

適用於: Windows Server
原始 KB 編號: 889250

摘要

當您將證書頒發機構單位卸載 (CA) 時,CA 所簽發的憑證通常仍然未完成。 如果未處理的憑證由各種公鑰基礎結構用戶端電腦處理,驗證將會失敗,且不會使用這些憑證。

本文說明如何撤銷未處理的憑證,以及如何完成成功卸載 CA 所需的各種其他工作。 此外,本文說明數個公用程式,可用來協助您從網域中移除 CA 物件。

步驟 1 - 撤銷企業 CA 所簽發的所有使用中憑證

  1. 取 [開始],指向 [ 系統管理工具],然後選取 [ 證書頒發機構單位]
  2. 展開您的 CA,然後選取 [發行的憑證] 資料夾。
  3. 在右窗格中,選取其中一個核發的憑證,然後按 CTRL+A 來選取所有發行的憑證。
  4. 以滑鼠右鍵按下選取的憑證,選取 [ 所有工作],然後選取 [ 撤銷憑證]
  5. 在 [ 證書吊銷 ] 對話框中,選取 [ 停止作業 ] 作為撤銷的原因,然後選取 [ 確定]

步驟 2 - 增加 CRL 發行集間隔

  1. 在證書頒發機構單位 Microsoft Management Console (MMC) 嵌入式管理單元中,以滑鼠右鍵按兩下 [ 撤銷憑證 ] 資料夾,然後選取 [ 內容]
  2. 在 [ CRL 發行集間隔] 方塊中,輸入適當的長值,然後選取 [ 確定]

注意事項

CRL) (證書吊銷清單的存留期應該超過已撤銷之憑證的存留期。

步驟 3 - 發佈新的 CRL

  1. 在 [證書頒發機構單位 MMC] 嵌入式管理單元中,以滑鼠右鍵按兩下 [撤銷憑證] 資料夾。
  2. 選取 [所有工作],然後選取 [ 發佈]
  3. 在 [ 發佈 CRL] 對話框中,選取 [ 新增 CRL],然後選取 [ 確定]

步驟 4 - 拒絕任何擱置的要求

根據預設,企業 CA 不會儲存憑證要求。 不過,系統管理員可以變更此預設行為。 若要拒絕任何擱置的憑證要求,請遵循下列步驟:

  1. 在 [證書頒發機構單位 MMC] 嵌入式管理單元中,選取 [擱置的要求] 資料夾。
  2. 在右窗格中,選取其中一個擱置的要求,然後按 CTRL+A 來選取所有擱置的憑證。
  3. 以滑鼠右鍵按下選取的要求,選取 [ 所有工作],然後選取 [ 拒絕要求]

步驟 5 - 從伺服器卸載憑證服務

  1. 若要停止憑證服務,請選取 [ 開始],選取 [ 執行],輸入 cmd,然後選取 [ 確定]

  2. 在命令提示字元中,輸入 certutil -shutdown,然後按 Enter。

  3. 在命令提示字元中,輸入 certutil -getreg CA\CSP\Provider,然後按 Enter。 請記下輸出中的 Provider 值。 例如:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\Fabrikam Root CA1 G2\csp:
    
      Provider REG_SZ = Microsoft Software Key Storage Provider
    CertUtil: -getreg command completed successfully.
    

    如果值為 Microsoft Strong Cryptographic ProviderMicrosoft Enhanced Cryptographic Provider v1.0,請輸入 CertUtil -Key ,然後按 Enter。
    如果值為 Microsoft 軟體金鑰儲存提供者,請輸入 CertUtil -CSP KSP -Key ,然後按 Enter。
    如果值為其他值,請輸入 CertUtil -CSP <PROVIDER NAME> -Key ,然後按 Enter。

    此命令會顯示 CSP) (所有已安裝密碼編譯服務提供者的名稱,以及與每個提供者相關聯的密鑰存放區。 列在列出的金鑰存放區中,將會是 CA 的名稱。 名稱會列出數次,如下列範例所示:

    (1) Microsoft Base Cryptographic Provider v1.0:
    1a3b2f44-2540-408b-8867-51bd6b6ed413
    MS IIS DCOM ClientSYSTEMS-1-5-18
    MS IIS DCOM Server
    Windows2000 企業版根 CA
    MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500

    afd1bc0a-a93c-4a31-8056-c0b9ca632896
    Microsoft Internet Information Server
    NetMon
    MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500

    (5) Microsoft Enhanced Cryptographic Provider v1.0:
    1a3b2f44-2540-408b-8867-51bd6b6ed413
    MS IIS DCOM ClientSYSTEMS-1-5-18
    MS IIS DCOM Server
    Windows2000 企業版根 CA
    MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500

    afd1bc0a-a93c-4a31-8056-c0b9ca632896
    Microsoft Internet Information Server
    NetMon
    MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500

  4. 刪除與 CA 相關聯的私鑰。 若要這樣做,請在命令提示字元中輸入下列命令,然後按 Enter:

    certutil -delkey CertificateAuthorityName
    

    注意事項

    如果您的 CA 名稱包含空白,請以引弧括住名稱。

    在此範例中,證書頒發機構單位名稱是 Windows2000 企業根 CA。 因此,此範例中的命令行如下所示:

    certutil -delkey "Windows2000 Enterprise Root CA"
    
  5. 再次列出金鑰存放區,以確認已刪除 CA 的私鑰。

  6. 刪除 CA 的私鑰之後,請卸載憑證服務。 若要這樣做,請遵循下列步驟,視您執行的 Windows Server 版本而定。

    如果您要卸載企業 CA,則 Enterprise Admins 的成員資格或同等成員資格是完成此程式所需的最小值。 如需詳細資訊,請參閱<實作角色型管理>。

    若要卸載 CA,請遵循下列步驟:

    1. 取 [開始],指向 [系統管理工具],然後選取 [伺服器管理員]
    2. 在 [ 角色摘要] 下,選 取 [移除角色 ] 以啟動 [移除角色精靈],然後選取 [ 下一步]
    3. 選取以清除 [ Active Directory 憑證服務] 複選框,然後選取 [ 下一步]
    4. 在 [ 確認移除選項] 頁面上檢閱信息,然後選取 [ 移除]
    5. 如果 Internet Information Services (IIS) 正在執行,而且系統會提示您在繼續卸載程式之前停止服務,請選取 [ 確定]
    6. [移除角色精靈] 完成之後,請重新啟動伺服器。 這會完成卸載程式。

    如果您在單一伺服器上安裝了多個 Active Directory 憑證服務 (AD CS) 角色服務,則程式會稍有不同。 若要卸載 CA,但保留其他 AD CS 角色服務,請遵循下列步驟。

    注意事項

    您必須使用與安裝 CA 之使用者相同的許可權登入,才能完成此程式。 如果您要卸載企業 CA,則 Enterprise Admins 的成員資格或同等成員資格是完成此程式所需的最小值。 如需詳細資訊,請參閱<實作角色型管理>。

    1. 取 [開始],指向 [系統管理工具],然後選取 [伺服器管理員]
    2. 在 [ 角色摘要] 下,選取 [Active Directory 憑證服務]
    3. 在 [ 角色服務] 底下,選 取 [移除角色服務]
    4. 選取以清除 [ 證書頒發機構單位 ] 複選框,然後選取 [ 下一步]
    5. 在 [ 確認移除選項] 頁面上檢閱信息,然後選取 [ 移除]
    6. 如果 IIS 正在執行,且系統提示您在繼續卸載程式之前停止服務,請選取 [ 確定]
    7. [移除角色精靈] 完成之後,您必須重新啟動伺服器。 這會完成卸載程式。

    如果其餘的角色服務,例如 Online Responder 服務,設定為使用來自已卸載 CA 的數據,您必須重新設定這些服務以支援不同的 CA。 卸載 CA 之後,伺服器上會保留下列資訊:

    • CA 資料庫。
    • CA 公鑰和私鑰。
    • 個人存放區中的 CA 憑證。
    • 如果在 AD CS 安裝期間指定了共用資料夾,則為共享資料夾中的 CA 憑證。
    • 信任的跟證書授權單位存放區中的CA鏈結跟證書。
    • 中繼證書頒發機構單位存放區中CA鏈結的中繼憑證。
    • CA 的CRL。

    根據預設,此資訊會保留在伺服器上,以防您卸載並重新安裝 CA。 例如,如果您想要將獨立 CA 變更為企業 CA,您可以卸載並重新安裝 CA。

步驟 6 - 從 Active Directory 移除 CA 物件

當 Microsoft 憑證服務安裝在屬於網域成員的伺服器上時,會在 Active Directory 的組態容器中建立數個物件。

這些物件如下所示:

  • certificateAuthority 物件

    • 位於 CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain。
    • 包含 CA 的 CA 憑證。
    • 已發佈的授權單位資訊存取 (AIA) 位置。
  • crlDistributionPoint 物件

    • 位於 CN=ServerName,CN=CDP,CN=Public Key Service,CN=Services,CN=Configuration,DC=ForestRoot,DC=com。
    • 包含 CA 定期發佈的 CRL。
    • 已發佈 CRL 發佈點 (CDP) 位置。
  • certificationAuthority 物件

    • 位於 CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot,DC=com。
    • 包含 CA 的 CA 憑證。
  • pKIEnrollmentService 物件

    • 位於 CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot,DC=com。
    • 由企業CA建立。
    • 包含 CA 已設定要發出之憑證類型的相關信息。 此物件的許可權可以控制哪些安全性主體可以針對此 CA 註冊。

卸載 CA 時,只會移除 pKIEnrollmentService 物件。 這可防止客戶端嘗試針對已解除委任的 CA 進行註冊。 其他物件會保留,因為 CA 所簽發的憑證可能仍未完成。 您必須依照 步驟 1 - 撤銷企業 CA 發出的所有使用中憑證 一節中的程式撤銷這些憑證。

若要讓公鑰基礎結構 (PKI) 用戶端電腦成功處理這些未完成的憑證,計算機必須在 Active Directory 中找出授權單位資訊存取 (AIA) 和 CRL 發佈點路徑。 建議您撤銷所有未處理的憑證、延長 CRL 的存留期,然後在 Active Directory 中發佈 CRL。 如果未處理的憑證由各種 PKI 用戶端處理,驗證將會失敗,而且不會使用這些憑證。

如果在 Active Directory 中維護 CRL 發佈點和 AIA 不是優先順序,您可以移除這些物件。 如果您預期要處理一或多個先前使用中的數字證書,請勿移除這些物件。

從 Active Directory 移除所有認證服務物件

注意事項

在移除 Active Directory 樹系中的所有 CA 物件之前,您不應該從 Active Directory 移除證書範本。

若要從 Active Directory 移除所有認證服務物件,請遵循下列步驟:

  1. 判斷 CA 的 CACommonName。 如果要執行這項操作,請依照下列步驟執行:

    1. 取 [開始],選取 [執行],在 [啟] 方塊中輸入 cmd,然後選取 [確定]
    2. 輸入 certutil,然後按 ENTER。
    3. 記下屬於 CA 的 Name 值。 在此程序的後續步驟中,您將需要 CACommonName。
  2. 取 [開始],指向 [ 系統管理工具],然後選取 [ Active Directory 月臺和服務]

  3. 在 [ 檢視] 功能表上,選取 [ 顯示服務節點]

  4. 依序展開 [服務] 和 [ 公鑰服務],然後選取 [AIA] 資料夾。

  5. 在右窗格中,以滑鼠右鍵按兩下 CA 的 CertificationAuthority 物件,選取 [ 刪除],然後選取 [ 是]

  6. 在 Active Directory 網站和服務 MMC 嵌入式管理單元的左窗格中,選取 CDP 資料夾。

  7. 在右窗格中,找出安裝憑證服務之伺服器的容器物件。 以滑鼠右鍵按兩下容器,選取 [ 刪除],然後選取 [ ] 兩次。

  8. 在 Active Directory 網站和服務 MMC 嵌入式管理單元的左窗格中,選取 [ 證書頒發機構單位 ] 節點。

  9. 在右窗格中,以滑鼠右鍵按兩下 CA 的 CertificationAuthority 物件,選取 [ 刪除],然後選取 [ 是]

  10. 在 Active Directory 網站和服務 MMC 嵌入式管理單元的左窗格中,選取 [ 註冊服務] 節點。

  11. 在右窗格中,確認卸載憑證服務時已移除 CA 的 pKIEnrollmentService 物件。 如果物件未刪除,請以滑鼠右鍵按下對象,選取 [ 刪除],然後選取 [ 是]

  12. 如果您找不到所有物件,在您執行這些步驟之後,某些物件可能會留在 Active Directory 中。 若要在可能已在 Active Directory 中留下物件的 CA 之後清除,請遵循下列步驟來判斷是否有任何 AD 物件保留:

    1. 在命令行輸入下列命令,然後按 ENTER:

      ldifde -r "cn= CACommonName" -d "CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRoot,DC=com" -f output.ldf
      

      在此命令中, CACommonName 代表您在步驟 1 中決定的 Name 值。 例如,如果 Name 值為 CA1 Contoso,請輸入下列內容:

      ldifde -r "cn=CA1 Contoso" -d "cn=public key services,cn=services,cn=configuration,dc=contoso,dc=com" -f remainingCAobjects.ldf
      
    2. 在記事本中開啟 remainingCAobjects.ldf 檔案。 以 changetype: delete 取代 changetype: add 一詞。 然後,確認您要刪除的 Active Directory 物件是否合法。

    3. 在命令提示字元中輸入下列命令,然後按 ENTER 從 Active Directory 刪除其餘的 CA 物件:

      ldifde -i -f remainingCAobjects.ldf
      
  13. 如果您確定已刪除所有證書頒發機構單位,請刪除證書範本。 重複步驟 12,以判斷是否有任何 AD 物件保留。

    重要事項

    除非已刪除所有證書頒發機構單位,否則您不得刪除證書範本。 如果不小心刪除範本,請遵循下列步驟:

    1. 請確定您已以企業系統管理員身分登入執行憑證服務的伺服器。

    2. 在命令提示中輸入下列命令,然後按 ENTER:

      cd %windir%\system32
      
    3. 輸入下列命令,然後按 ENTER 鍵:

      regsvr32 /i:i /n /s certcli.dll
      

      此動作會在 Active Directory 中重新建立證書範本。

    若要刪除證書範本,請遵循下列步驟。

    1. Active Directory 網站和服務 MMC 嵌入式管理單元的左窗格中,選取 [證書範本] 資料夾。
    2. 在右窗格中,選取證書範本,然後按 Ctrl+A 以選取所有範本。 以滑鼠右鍵按下選取的範本,選取 [ 刪除],然後選取 [ 是]

步驟 7 - 刪除發行至 NtAuthCertificates 對象的憑證

刪除 CA 物件之後,您必須刪除發行至物件的 NtAuthCertificates CA 憑證。 使用下列其中一個命令,從存放區中 NTAuthCertificates 刪除憑證:

certutil -viewdelstore " ldap:///CN=NtAuthCertificates,CN=Public Key
Services,...,DC=ForestRoot,DC=com?cACertificate?base?objectclass=certificationAuthority"
certutil -viewdelstore " ldap:///CN=NtAuthCertificates,CN=Public Key
Services,...,DC=ForestRoot,DC=com?cACertificate?base?objectclass=pKIEnrollmentService"

注意事項

您必須具有企業系統管理員許可權,才能執行這項工作。

動作 -viewdelstore 會在指定屬性的憑證集合上叫用憑證選取 UI。 您可以檢視憑證詳細數據。 您可以取消選取對話框,不進行任何變更。 如果您選取憑證,當 UI 關閉且命令完全執行時,就會刪除該憑證。

使用下列命令來查看Active Directory 中 NtAuthCertificates 物件的完整 LDAP 路徑:

certutil -viewdelstore -? | findstr "CN=NTAuth"

步驟 8 - 刪除 CA 資料庫

卸載認證服務時,CA 資料庫會保持不變,以便在其他伺服器上重新建立 CA。

若要移除 CA 資料庫,請刪除 %systemroot%\System32\Certlog 檔案 夾。

步驟 9 - 清除域控制器

卸載 CA 之後,必須移除發行給域控制器的憑證。

若要移除簽發給 Windows Server 2000 域控制器的憑證,請使用 Microsoft Windows 2000 資源套件中的 Dsstore.exe 公用程式。

若要移除已簽發給 Windows Server 2000 域控制器的憑證,請遵循下列步驟:

  1. 取 [開始],選取 [ 執行],輸入 cmd,然後按 ENTER。

  2. 在域控制器上,於命令提示字元輸入 dsstore -dcmon ,然後按 ENTER。

  3. 輸入 3,然後按 ENTER。 此動作會刪除所有域控制器上的所有憑證。

    注意事項

    Dsstore.exe 公用程式會嘗試驗證發行給每個域控制器的域控制器憑證。 不會驗證的憑證會從其各自的域控制器中移除。

若要移除發行給 Windows Server 2003 域控制器的憑證,請遵循下列步驟。

重要事項

如果您使用以第 1 版域控制器範本為基礎的憑證,請勿使用此程式。

  1. 取 [開始],選取 [ 執行],輸入 cmd,然後按 ENTER。

  2. 在域控制器的命令提示字元中,輸入 certutil -dcinfo deleteBad

    Certutil.exe 嘗試驗證發行給域控制器的所有DC憑證。 不會驗證的憑證會移除。

若要強制套用安全策略,請遵循下列步驟:

  1. 取 [開始],選取 [執行],在 [啟] 方塊中輸入 cmd,然後按 ENTER。
  2. 在命令提示字元中,輸入作業系統對應版本的適當命令,然後按 ENTER:
    • 針對 Windows Server 2000:

      secedit /refreshpolicy machine_policy /enforce
      
    • 針對 Windows Server 2003:

      gpupdate /force