Share via


在 Windows 中設定受信任的根目錄和不允許的憑證

適用於:Windows Server (所有支援的版本)、Windows 用戶端、Azure Stack HCI。

將 Microsoft 自動更新 URL 重新導向至裝載憑證信任清單 (CTL)、不受信任的 CTL,或中斷連線環境中受信任 CTL 檔案的子集的檔案或 Web 伺服器。

若要深入了解 Microsoft 根憑證計畫如何在 Windows 作業系統之間自動發佈受信任根憑證,請參閱憑證和信任

提示

在電腦能夠直接連線到 Windows Update 網站的環境中,您不需要重新導向 Microsoft 自動更新 URL。 可以連線到 Windows Update 網站的電腦每天都能接收更新的 CTL。

必要條件

您必須先完成下列必要條件,才能將中斷連線的環境設定為使用裝載於檔案或 Web 伺服器上的 CTL 檔案。

用戶端必要條件

  • 至少一部電腦能夠連線到網際網路,以便從 Microsoft 下載 CTL。 該電腦需要有 HTTP (TCP 連接埠 80) 存取和名稱解析 (TCP 與 UDP 連接埠 53) 功能來聯繫 ctldl.windowsupdate.com。 這部電腦可以是網域成員或工作群組的成員。 目前所有下載的檔案大約需要 1.5 MB 的空間。
  • 用戶端電腦必須連線到 Active Directory 網域服務網域。
  • 您必須是本機 Administrators 群組的成員。

伺服器必要條件

  • 裝載 CTL 檔案的檔案伺服器或 Web 伺服器。
  • 將組態設定部署至用戶端的 AD 群組原則或 MDM 解決方案。
  • 屬於 Domain Admins 群組成員或已委派必要權限的帳戶

設定方法

管理員可以使用自動更新機制,將檔案或 Web 伺服器設定為下載下列檔案:

  • authrootstl.cab 包含非 Microsoft CTL。

  • disallowedcertstl.cab 包含具備未受信任憑證的 CTL。

  • disallowedcert.sst 包含序列憑證存放區 (包括未受信任的憑證)。

  • <thumbprint>.crt 包含非 Microsoft 的根憑證。

本文件中的 Configure a file or web server to download the CTL files 一節說明執行此設定的步驟。

有數種方法可設定您的環境,以使用本機 CTL 檔案或受信任的 CTL 子集。 可用方法如下。

  • 設定 Active Directory 網域服務 (AD DS) 網域成員電腦,針對受信任和未受信任的 CTL 使用自動更新機制,而不需存取 Windows Update 網站。 此設定在本文件中的重新導向 Microsoft 自動更新 URL 一節中加以說明。

  • 設定 AD DS 網域成員電腦,以個別加入未受信任和受信任的 CTL 自動更新。 獨立加入設定在本文件中的僅針對未受信任的 CTL 重新導向 Microsoft 自動更新 URL 一節中加以說明。

  • 檢查 Windows 根憑證計劃中的根憑證組合。 檢查根憑證集可讓管理員使用群組原則物件 (GPO) 來選取要發佈的憑證子集。 此設定將在本文件中的使用受信任 CTL 的子集一節中加以說明。

重要

  • 本文所述的設定都是透過使用 GPO 來實作。 如果 GPO 尚未連結或已從 AD DS 網域移除,並不會自動移除這些設定。 實作之後,只能使用 GPO 或修改受影響電腦的登錄來變更這些設定。

  • 本文所討論的概念與 Windows Server Update Services (WSUS) 無關。

設定檔案或 Web 伺服器以下載 CTL 檔案

為方便針對中斷連線的環境發佈受信任或未受信任的憑證,您必須先設定檔案或 Web 伺服器,從自動更新機制下載 CTL 檔案。

從 Windows Update 擷取 CTL 檔案

  1. 在能夠使用自動化更新機制同步處理以及您想要用來儲存 CTL 檔案的檔案或 Web 伺服器上建立共用資料夾。

    提示

    開始之前,您可能必須調整共用資料夾權限和 NTFS 資料夾權限,以允許適當的帳戶存取,特別是您正在使用服務帳戶來進行已排程工作的時候。 如需調整權限的詳細資訊,請參閱管理共用資料夾的權限

  2. 在已提高權限的 PowerShell 提示字元中,執行下列命令:

    Certutil -syncWithWU \\<server>\<share>
    

    <server> 取代實際伺服器名稱,以 <share> 取代共用資料夾名稱。例如,對於名稱為 Server1 的伺服器,以及名稱為 CTL 的共用資料夾,會執行下列命令:

    Certutil -syncWithWU \\Server1\CTL
    
  3. 在伺服器上下載 CTL 檔案,而處於中斷連線環境的電腦可以使用 FILE 路徑 (例如,FILE://\\Server1\CTL) 或 HTTP 路徑 (例如,http://Server1/CTL),透過網路來存取該伺服器。

注意

  • 如果無法從中斷連線環境中的電腦存取可同步處理 CTL 的伺服器,您就必須提供其他方法來傳輸資訊。 例如,您可以允許其中一部網域成員連線到該伺服器,然後在網域成員電腦上排程其他工作,將資訊提取到內部 Web 伺服器上的共用資料夾。 如果絕對不會有網路連線,您可能必須使用手動處理程序來傳輸檔案,例如使用卸除式儲存裝置。

  • 如果您計畫使用 Web 伺服器,必須為 CTL 檔案建立新的虛擬目錄。 使用網際網路資訊服務 (IIS) 建立虛擬目錄的步驟,幾乎與本文討論的所有支援作業系統步驟相同。 如需詳細資訊,請參閱 建立虛擬目錄 (IIS7)

  • Windows 中特定的系統和應用程式資料夾都具有特殊的保護措施。 例如, inetpub 資料夾需要特殊的存取權限,這讓使用者難以建立與排程工作搭配使用以傳輸檔案的共用資料夾。 身為管理員,您可以在邏輯磁碟機系統的根資料夾上建立資料夾位置,以便在進行檔案傳輸時使用。

重新導向 Microsoft 自動更新 URL

網路中的電腦可能會在中斷連線的環境中設定,因此無法使用自動更新機制或下載 CTL。 您可以在 AD DS 中實作 GPO 來設定這些電腦,以從備選位置取得 CTL 更新。

您必須已經完成設定檔案或 Web 伺服器以下載 CTL 檔案中的步驟,才能進行本節的設定。

設定適用於 GPO 的自訂系統管理範本

  1. 在網域控制站上,建立新的系統管理範本。 以記事本開啟文字檔,然後將副檔名變更為 .adm。 檔案的內容應該如下:

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate"
        POLICY !!RootDirURL
           EXPLAIN !!RootDirURL_help
           PART !!RootDirURL EDITTEXT
                 VALUENAME "RootDirURL"
           END PART
        END POLICY
    END CATEGORY
    [strings]
    RootDirURL="URL address to be used instead of default ctldl.windowsupdate.com"
    RootDirURL_help="Enter a FILE or HTTP URL to use as the download location of the CTL files."
    SystemCertificates="Windows AutoUpdate Settings"
    
  2. 使用描述性名稱來儲存檔案,例如 RootDirURL.adm

    • 確定副檔名為 .adm,而不是 .txt

    • 如果您尚未啟用副檔名檢視,請參閱做法:檢視副檔名

    • 如果您將檔案儲存至 %windir%\inf 資料夾,將能夠更容易在下列步驟中找到該檔案。

  3. 開啟 [群組原則管理編輯器]。 選取 [開始] > [執行]>,輸入 GPMC.msc,然後按 ENTER 鍵。

    警告

    您可以將新的 GPO 連結到網域或任何組織單位 (OU)。 本文中實作的 GPO 修改會改變受影響電腦的登錄設定。 您無法藉由刪除或取消連結 GPO 來復原這些設定。 您只能在 GPO 設定中回復它們或是使用其他技術來修改登錄,藉以復原這些設定。

  4. 依序展開 [樹系] 物件和 [網域] 物件,然後展開包含您要變更的電腦帳戶的特定網域。 如果您有要修改的特定 OU,則瀏覽到該位置。

  5. 使用滑鼠右鍵按一下,然後選取 [在這個網域中建立 GPO 並連結到],以建立新的 GPO。

  6. 在瀏覽窗格中的 [電腦設定] 底下,展開 [原則]

  7. 按右鍵選取 [系統管理範本],然後選取 [新增/移除範本]

  8. 在 [新增/移除範本] 中,選取 [新增]

  9. 在 [原則範本] 對話方塊中,選取您先前儲存的 .adm 範本。 選取 [開啟],然後選取 [關閉]

  10. 在瀏覽窗格中,依序展開 [系統管理範本] 和 [傳統系統管理範本 (ADM)]

  11. 選取 [Windows 自動更新設定],然後在詳細資料窗格中,按兩下已選取 [要使用的 URL 地址 (非預設 ctldl.windowsupdate.com)]

  12. 選取 [啟用] 。 在 [選項] 區段中,輸入包含 CTL 檔案的檔案伺服器或 Web 伺服器的 URL。 例如,http://server1/CTLfile://\\server1\CTL

  13. 選取 [確定]。

  14. 關閉 [群組原則管理編輯器]。

原則會立即生效,但是用戶端電腦必須重新啟動才能接收新的設定,或者您可以從已提升權限的命令提示字元或 Windows PowerShell 輸入 gpupdate /force

重要

受信任和未受信任的 CTL 可以每日更新,因此,請確定您會使用排程的工作或其他方法 (例如,處理錯誤狀況的指令碼) 讓檔案保持同步,以更新共用的資料夾或 Web 虛擬目錄。 如需使用 PowerShell 建立排程工作的詳細資訊,請參閱 New-ScheduledTask。 如果您計劃撰寫指令碼以進行每日更新,請參閱 certutil Windows 命令參考。

僅針對未受信任的 CTL,重新導向 Microsoft 自動更新 URL

某些組織可能只想要自動更新未受信任的 CTL (而不更新受信任的 CTL)。 若要只更新不受信任的 CTL,請建立兩個 .adm 範本以新增至群組原則。

在中斷連線的環境中,您可以將下列程序與先前的程序 (針對受信任的 CTL 和未受信任的 CTL,重新導向 Microsoft 自動更新 URL) 搭配使用。 這個程序說明如何選擇性地停用受信任 CTL 的自動更新。

您也可以在隔離的連線環境中使用這個程序,選擇性地停用受信任 CTL 的自動更新。

選擇性地停用未受信任的 CTL

  1. 在網域控制站上,一開始先使用文字檔,然後將副檔名變更為 .adm,以建立第一個新的系統管理範本。 檔案的內容應該如下:

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
        POLICY !!DisableRootAutoUpdate
           EXPLAIN !!Certificates_config
           VALUENAME "DisableRootAutoUpdate"
           VALUEON NUMERIC 0
              VALUEOFF NUMERIC 1
    
        END POLICY
    END CATEGORY
    [strings]
    DisableRootAutoUpdate="Auto Root Update"
    Certificates_config="By default automatic updating of the trusted CTL is enabled. To disable the automatic updating trusted CTLe, select Disabled."
    SystemCertificates="Windows AutoUpdate Settings"
    
  2. 使用描述性名稱來儲存檔案,例如 DisableAllowedCTLUpdate.adm

  3. 建立第二個新的系統管理範本。 檔案的內容應該如下:

    CLASS MACHINE
    CATEGORY !!SystemCertificates
        KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
        POLICY !!EnableDisallowedCertAutoUpdate
           EXPLAIN !!Certificates_config
           VALUENAME "EnableDisallowedCertAutoUpdate"
           VALUEON NUMERIC 1
              VALUEOFF NUMERIC 0
    
        END POLICY
    END CATEGORY
    [strings]
    EnableDisallowedCertAutoUpdate="Untrusted CTL Automatic Update"
    Certificates_config="By default untrusted CTL automatic update is enabled. To disable trusted CTL update, select Disabled."
    SystemCertificates="Windows AutoUpdate Settings"
    
  4. 使用描述性檔案名稱來儲存檔案,例如 EnableUntrustedCTLUpdate.adm

    • 確定這些檔案的副檔名為 .adm,而不是 .txt

    • 如果您將檔案儲存至 %windir%\inf 資料夾,將能夠更容易在下列步驟中找到該檔案。

  5. 開啟 [群組原則管理編輯器]。

  6. 依序展開 [樹系] 物件和 [網域] 物件,然後展開包含您要變更的電腦帳戶的特定網域。 如果您有要修改的特定 OU,則瀏覽到該位置。

  7. 在瀏覽窗格中的 [電腦設定] 底下,展開 [原則]

  8. 按右鍵選取 [系統管理範本],然後選取 [新增/移除範本]

  9. 在 [新增/移除範本] 中,選取 [新增]

  10. 在 [原則範本] 對話方塊中,選取您先前儲存的 .adm 範本。 選取 [開啟],然後選取 [關閉]

  11. 在導覽窗格中,依序展開 [系統管理範本]和 [傳統系統管理範本 (ADM)]

  12. 選取 [Windows AutoUpdate 設定],然後在詳細資料窗格中,按兩下 [自動根憑證更新]

  13. 選取 [停用],然後選取 [確定]

  14. 在詳細資料窗格中,按兩下 [未受信任 CTL 自動更新],然後依序選取 [已啟用] 和 [確定]

原則會立即生效,但是用戶端電腦必須重新啟動才能接收新的設定,或者您可以從已提升權限的命令提示字元或 Windows PowerShell 輸入 gpupdate /force

重要

受信任和未受信任的 CTL 可以每日更新,因此,請確定您會使用排程的工作或其他方法讓檔案保持同步,以更新共用的資料夾或虛擬目錄。

使用受信任的 CTL 子集

本節說明如何產生、檢閱及篩選您要讓組織中的電腦使用的受信任 CTL。 您必須實作先前程序所述的 GPO,才能使用這個解決方案。 這個解決方案適用於中斷連線和連線的環境。

自訂受信任的 CTL 清單有兩個程序。

  1. 建立受信任憑證的子集

  2. 使用群組原則發佈受信任的憑證

建立受信任憑證的子集

以下說明如何使用 Windows 的自動 Windows 更新機制來產生 SST 檔案。 如需產生 SST 檔案的詳細資訊,請參閱 Certutil Windows 命令參考。

  1. 從連線到網際網路的電腦,以管理員身分開啟 Windows PowerShell,或者開啟已提升權限的命令提示字元,然後輸入下列命令:

    Certutil -generateSSTFromWU WURoots.sst
    
  2. 您可以在 Windows 檔案總管中執行下列命令來開啟 WURoots.sst

    start explorer.exe wuroots.sst
    

    提示

    您也可以使用 Internet Explorer 瀏覽到該檔案,然後按兩下該檔案以開啟它。 根據儲存檔案的位置而定,您或許也可以輸入 wuroots.sst來開啟它。

  3. 開啟 [憑證管理員]。

  4. 展開 [憑證 - 目前使用者] 下的檔案路徑,直到您看到 [憑證],然後選取 [憑證]

  5. 您可以在詳細資料窗格中看到受信任的憑證。 按住 CTRL 鍵,然後選取您要允許的每一個憑證。 當您完成選取要允許的憑證時,使用滑鼠右鍵按一下其中一個選取的憑證、按一下 [所有工作],然後選取 [匯出]

    • 您至少必須選取兩個憑證,才能匯出 .sst 檔案類型。 如果您只選取一個憑證,就無法使用 .sst 檔案類型,並會改為選取 .cer 檔案類型。
  6. 在 [憑證匯出精靈] 中選取 [下一步]

  7. 在 [匯出檔案格式] 頁面上,按一下 [Microsoft 序列憑證存放區 (.SST)],然後選取 [下一步]

  8. 在 [要匯出的檔案] 頁面上,輸入檔案的檔案路徑和適當名稱,例如,C:\AllowedCerts.sst,然後選取 [下一步]

  9. 選取 [完成] 。 當系統通知您匯出成功時,請選取 [確定]

  10. 將您建立的 .sst 檔案複製到網域控制站。

使用群組原則發佈受信任的憑證清單

  1. 在含有自訂 .sst 檔案的網域控制站上,開啟 [群組原則管理編輯器]。

  2. 依序展開 [樹系] 和 [網域],然後展開您要修改的特定網域物件。 以滑鼠右鍵按一下 [預設網域原則 GPO],然後選取 [編輯]

  3. 在瀏覽窗格的 [電腦設定] 下方,依序展開 [原則]、[Windows 設定] 及 [安全性設定],然後展開 [公開金鑰原則]

  4. 在 [受信任的根憑證授權單位] 上按一下滑鼠右鍵,然後選取 [匯入]

  5. 在 [憑證匯入精靈] 中,選取 [下一步]

  6. 輸入您複製到網域控制站的檔案路徑和檔案名稱,或者使用 [瀏覽] 按鈕來尋找檔案。 選取 [下一步] 。

  7. 選取 [下一步],確認您要將這些憑證放置於 [受信任的根憑證授權單位] 憑證存放區中。 選取 [完成]。 當系統通知您憑證匯入成功時,選取 [確定]

  8. 關閉 [群組原則管理編輯器]。

原則會立即生效,但是用戶端電腦必須重新啟動才能接收新的設定,或者您可以從已提升權限的命令提示字元或 Windows PowerShell 輸入 gpupdate /force

已修改的登錄設定

本文所述的設定會在用戶端電腦上設定下列登錄機碼。 如果 GPO 尚未連結或已從網域移除,並不會自動移除這些設定。 如果您想要變更這些設定,必須重設。

  • 啟用或停用受信任 CTL 的 Windows AutoUpdate:

    • 金鑰HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot\DisableRootAutoUpdate
    • 類型REG_DWORD
    • 名稱DisableRootAutoUpdate
    • 資料0 以啟用,或 1 以停用。
    • 預設:預設沒有金鑰存在。 如果沒有金鑰存在,則會啟用預設值。
  • 啟用或停用受信任 CTL 的 Windows AutoUpdate:

    • 金鑰SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot
    • 類型REG_DWORD
    • 名稱EnableDisallowedCertAutoUpdate
    • 資料1 以啟用,或 0 以停用。
    • 預設:預設沒有金鑰存在。 如果沒有金鑰存在,則會啟用預設值。
  • 設定共用的 ctl 檔案位置 (HTTP 或 FILE 路徑):

    • 金鑰HKLM\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\AutoUpdate\RootDirUrl
    • 類型REG_SZ
    • 名稱RootDirUrl
    • 資料:輸入有效的 HTTP 或檔案 URI。
    • 預設:預設沒有金鑰存在。 如果沒有金鑰存在,預設行為會使用 Windows Update。

驗證受信任與未受信任的 CTL

基於各種原因,可能需要從用戶端電腦驗證所有受信任和未受信任的 CTL。 下列 Certutil 選項可用來驗證來自用戶端電腦的所有受信任和未受信任的 CTL。

certutil -verifyCTL AuthRoot
certutil -verifyCTL Disallowed

檢查上次同步時間

若要檢查本機電腦上最新的同步處理時間,以取得受信任或未受信任的 CTL,請執行下列 Certutil 命令:

certutil -verifyctl AuthRoot | findstr /i "lastsynctime"
certutil -verifyctl Disallowed | findstr /i "lastsynctime"