教程:将软件更新点配置为将 TLS/SSL 与 PKI 证书配合使用

适用于: Configuration Manager(current branch)

将 Windows Server Update Services (WSUS) 服务器及其相应的软件更新点 (SUP) 配置为使用 TLS/SSL 可能会降低潜在攻击者远程入侵客户端和提升特权的能力。 为确保最佳安全协议到位,强烈建议使用 TLS/SSL 协议来帮助保护软件更新基础结构。 本文将指导你完成配置每个 WSUS 服务器和软件更新点以使用 HTTPS 所需的步骤。 有关保护 WSUS 的详细信息,请参阅 WSUS 文档中的使用安全套接字层协议保护 WSUS 一文。

在本教程中,你将:

  • 根据需要获取 PKI 证书
  • 将证书绑定到 WSUS 管理网站
  • 将 WSUS Web 服务配置为需要 SSL
  • 将 WSUS 应用程序配置为使用 SSL
  • 验证 WSUS 控制台连接是否可以使用 SSL
  • 将软件更新点配置为要求与 WSUS 服务器进行 SSL 通信
  • 使用 Configuration Manager 验证功能

注意事项和限制

WSUS 使用 TLS/SSL 向上游 WSUS 服务器对客户端计算机和下游 WSUS 服务器进行身份验证。 WSUS 还使用 TLS/SSL 来加密更新元数据。 WSUS 不会对更新的内容文件使用 TLS/SSL。 内容文件已签名,文件的哈希包含在更新的元数据中。 在客户端下载和安装文件之前,将检查数字签名和哈希。 如果任一检查失败,则不会安装更新。

使用 TLS/SSL 保护 WSUS 部署时,请考虑以下限制:

  • 使用 TLS/SSL 会增加服务器工作负荷。 加密通过网络发送的所有元数据时,应该会降低性能。
  • 如果将 WSUS 与远程 SQL Server 数据库配合使用,则 WSUS 服务器与数据库服务器之间的连接不受 TLS/SSL 保护。 如果必须保护数据库连接,请考虑以下建议:
    • 将 WSUS 数据库移动到 WSUS 服务器。
    • 将远程数据库服务器和 WSUS 服务器移动到专用网络。
    • (IPsec) 部署 Internet 协议安全性,以帮助保护网络流量。

配置 WSUS 服务器及其软件更新点以使用 TLS/SSL 时,可能需要分阶段对大型 Configuration Manager 层次结构进行更改。 如果选择分阶段执行这些更改,请从层次结构的底部开始,然后向上移动,以管理中心站点结尾。

先决条件

本教程介绍获取用于 Internet Information Services (IIS) 的证书的最常见方法。 无论组织使用哪种方法,请确保证书满足 Configuration Manager 软件更新点的 PKI 证书要求 。 与任何证书一样,与 WSUS 服务器通信的设备必须信任证书颁发机构。

  • 安装了软件更新点角色的 WSUS 服务器
  • 在启用 TLS/SSL 之前,请验证是否遵循了有关禁用 WSUS 回收和配置内存限制的 最佳做法
  • 以下两个选项之一:
    • WSUS 服务器的 “个人 ”证书存储中已有相应的 PKI 证书。
    • 能够向企业根证书颁发机构请求和获取 WSUS 服务器的相应 PKI 证书, (CA) 。
      • 默认情况下,包括 WebServer 证书模板在内的大多数证书模板将仅颁发给域管理员。 如果登录的用户不是域管理员,则需要向其用户帐户授予证书模板的 “注册” 权限。

如果需要,请从 CA 获取证书

如果 WSUS 服务器的 “个人 ”证书存储中已有相应的证书,请跳过此部分,并从 “绑定证书” 部分开始。 若要向内部 CA 发送证书请求以安装新证书,请按照本部分中的说明进行操作。

  1. 在 WSUS 服务器中,打开管理命令提示符并运行 certlm.msc。 用户帐户必须是本地管理员才能管理本地计算机的证书。

    此时会显示本地设备的证书管理器工具。

  2. 展开 “个人”,然后右键单击“ 证书”。

  3. 选择“ 所有任务” ,然后选择 “请求新证书”。

  4. 选择“ 下一步” 开始证书注册。

  5. 选择要注册的证书类型。 证书用途是 服务器身份验证 ,要使用的Microsoft证书模板是 Web 服务器 或将 服务器身份验证 指定为 增强型密钥用法的自定义模板。 系统可能会提示你提供其他信息来注册证书。 通常,需要至少指定以下信息:

    • 公用名: 在“ 主题 ”选项卡上,将值设置为 WSUS 服务器的 FQDN。
    • 友好名称: 在“ 常规 ”选项卡上找到,将值设置为描述性名称,以帮助你稍后标识证书。

    用于指定注册详细信息的证书属性窗口

  6. 选择 “注册 ”,然后选择 “完成 ”以完成注册。

  7. 如果想要查看证书的详细信息(例如证书的指纹),请打开证书。

提示

如果 WSUS 服务器面向 Internet,则需要在证书中的“使用者”或“使用者可选名称” (SAN) 中使用外部 FQDN。

将证书绑定到 WSUS 管理站点

在 WSUS 服务器的个人证书存储中拥有证书后,将其绑定到 IIS 中的 WSUS 管理站点。

  1. 在 WSUS 服务器上,打开“Internet Information Services (IIS) 管理器”。

  2. 转到 站点>WSUS 管理

  3. 从操作菜单或右键单击网站选择 “绑定 ”。

  4. “网站绑定 ”窗口中,选择 https 的行,然后选择 “编辑...”

    • 不要删除 HTTP 站点绑定。 WSUS 对更新内容文件使用 HTTP。
  5. “SSL 证书 ”选项下,选择要绑定到 WSUS 管理站点的证书。 证书的友好名称显示在下拉菜单中。 如果未指定友好名称,则显示证书的 IssuedTo 字段。 如果不确定要使用哪个证书,请选择“ 查看 ”并验证指纹是否与获取的指纹匹配。

    包含 SSL 证书选择的“编辑网站绑定”窗口

  6. 完成后,选择 “确定” ,然后选择 “关闭” 以退出网站绑定。 使 Internet Information Services (IIS) Manager 保持打开状态,以执行后续步骤。

将 WSUS Web 服务配置为需要 SSL

  1. 在 WSUS 服务器上的 IIS 管理器中,转到 “站点>WSUS 管理”。

  2. 展开 WSUS 管理站点,以便查看 WSUS 的 Web 服务和虚拟目录列表。

  3. 对于以下每个 WSUS Web 服务:

    • ApiRemoting30
    • ClientWebService
    • DSSAuthWebService
    • ServerSyncWebService
    • SimpleAuthWebService

    进行以下更改:

    1. 选择“ SSL 设置”。
    2. 启用“ 需要 SSL ”选项。
    3. 验证 “客户端证书 ”选项是否设置为 “忽略”。
    4. 选择“应用”。

不要在顶级 WSUS 管理站点上设置 SSL 设置,因为某些函数(如内容)需要使用 HTTP。

将 WSUS 应用程序配置为使用 SSL

将 Web 服务设置为需要 SSL 后,需要通知 WSUS 应用程序,以便它可以执行一些其他配置来支持更改。

  1. 在 WSUS 服务器上打开管理员命令提示符。 运行此命令的用户帐户必须是 WSUS 管理员组或本地管理员组的成员。

  2. 将目录更改为 WSUS 的工具文件夹:

    cd "c:\Program Files\Update Services\Tools"

  3. 使用以下命令将 WSUS 配置为使用 SSL:

    WsusUtil.exe configuressl server.contoso.com

    其中 server.contoso.com 是 WSUS 服务器的 FQDN。

  4. WsusUtil 返回 WSUS 服务器的 URL,并在末尾指定的端口号。 端口将为 8531 (默认) 或 443。 验证返回的 URL 是否为预期。 如果键入错误,可以再次运行命令。

    wsusutil configuressl 命令返回 WSUS 的 HTTPS URL

提示

如果 WSUS 服务器面向 Internet,请在运行 WsusUtil.exe configuressl时指定外部 FQDN。

验证 WSUS 控制台是否可以使用 SSL 进行连接

WSUS 控制台使用 ApiRemoting30 Web 服务进行连接。 Configuration Manager 软件更新点 (SUP) 也使用此相同的 Web 服务来指示 WSUS 执行某些操作,例如:

  • 启动软件更新同步
  • 为 WSUS 设置适当的上游服务器,这取决于 SUP 的站点在 Configuration Manager 层次结构中的驻留位置
  • 从层次结构的顶级 WSUS 服务器添加或删除用于同步的产品和分类。
  • 删除过期的更新

打开 WSUS 控制台,验证是否可以使用与 WSUS 服务器的 ApiRemoting30 Web 服务的 SSL 连接。 稍后我们将测试其他一些 Web 服务。

  1. 打开 WSUS 控制台,然后选择 “操作>连接到服务器”。

  2. 为“ 服务器名称 ”选项输入 WSUS 服务器的 FQDN。

  3. 从 WSUSutil 选择 URL 中返回的 端口号

  4. 选择 8531 (默认) 或 443 时, “使用安全套接字层 (SSL) 连接到此服务器 ”选项会自动启用。

    通过 HTTPS 端口连接到 WSUS 控制台

  5. 如果 Configuration Manager 站点服务器远离软件更新点,请从站点服务器启动 WSUS 控制台,并验证 WSUS 控制台是否可以通过 SSL 进行连接。

    • 如果远程 WSUS 控制台无法连接,则可能表明信任证书、名称解析或端口被阻止的问题。

将软件更新点配置为要求与 WSUS 服务器进行 SSL 通信

将 WSUS 设置为使用 TLS/SSL 后,还需要更新相应的 Configuration Manager 软件更新点,以也需要 SSL。 进行此更改时,Configuration Manager 将:

  • 验证是否可以为软件更新点配置 WSUS 服务器
  • 指示客户端在被告知要扫描此 WSUS 服务器时使用 SSL 端口。

若要将软件更新点配置为要求与 WSUS 服务器进行 SSL 通信,请执行以下步骤:

  1. 打开 Configuration Manager 控制台并连接到管理中心站点或主站点服务器,以获取需要编辑的软件更新点。

  2. 转到 管理>概述>站点配置>服务器和站点系统角色

  3. 选择安装了 WSUS 的站点系统服务器,然后选择软件更新点站点系统角色。

  4. 在功能区中,选择“属性”。

  5. 启用 “需要与 WSUS 服务器的 SSL 通信 ”选项。

    显示“要求与 WSUS 服务器进行 SSL 通信”选项的 SUP 属性

  6. 在网站的 WCM.log 中,应用更改时会看到以下条目:

    SCF change notification triggered.
    Populating config from SCF
    Setting new configuration state to 1 (WSUS_CONFIG_PENDING)
    ...
    Attempting connection to local WSUS server
    Successfully connected to local WSUS server
    ...
    Setting new configuration state to 2 (WSUS_CONFIG_SUCCESS)
    

已编辑日志文件示例,以删除此方案的不需要的信息。

使用 Configuration Manager 验证功能

验证站点服务器是否可以同步更新

  1. 将 Configuration Manager 控制台连接到顶级站点。

  2. 转到 “软件库>概述>”“软件更新>”“所有软件更新”。

  3. 在功能区中,选择“ 同步软件更新”。

  4. 对于询问是否要启动软件更新的站点范围同步的通知,请选择“ ”。

    • 由于 WSUS 配置已更改,因此将发生完整的软件更新同步,而不是增量同步。
  5. 打开网站的 wsyncmgr.log 。 如果要监视子站点,则需要先等待父站点完成同步。 通过查看日志中的条目,验证服务器是否成功同步,如下所示:

    Starting Sync
    ...
    Full sync required due to changes in main WSUS server location.
    ...
    Found active SUP SERVER.CONTOSO.COM from SCF File.
    ...
    https://SERVER.CONTOSO.COM:8531
    ...
    Done synchronizing WSUS Server SERVER.CONTOSO.COM
    ...
    sync: Starting SMS database synchronization
    ...
    Done synchronizing SMS with WSUS Server SERVER.CONTOSO.COM
    

验证客户端是否可以扫描更新

将软件更新点更改为需要 SSL 时,Configuration Manager 客户端在对软件更新点发出位置请求时会收到更新后的 WSUS URL。 通过测试客户端,我们可以:

  • 确定客户端是否信任 WSUS 服务器的证书。
  • 如果 SimpleAuthWebService 和 ClientWebService for WSUS 正常工作。
  • 如果客户端在扫描过程中碰巧获得 EULA,则 WSUS 内容虚拟目录正常运行
  1. 标识针对最近更改为使用 TLS/SSL 的软件更新点进行扫描的客户端。 如果需要有关标识客户端的帮助,请结合以下 PowerShell 脚本 使用运行 脚本:

    $Last = (Get-CIMInstance -Namespace "root\CCM\Scanagent" -Class "CCM_SUPLocationList").LastSuccessScanPath
    $Current= Write-Output (Get-CIMInstance -Namespace "root\CCM\Scanagent" -Class "CCM_SUPLocationList").CurrentScanPath
    Write-Host "LastGoodSUP- $last"
    Write-Host "CurrentSUP- $current"
    

    提示

    在社区中心打开此脚本。 有关详细信息,请参阅 指向社区中心项的直接链接

  2. 在测试客户端上运行软件更新扫描周期。 可以使用以下 PowerShell 脚本强制扫描:

    Invoke-WMIMethod -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000113}"
    

    提示

    在社区中心打开此脚本。 有关详细信息,请参阅 指向社区中心项的直接链接

  3. 查看客户端 ScanAgent.log ,验证是否已收到要针对软件更新点进行扫描的消息。

    Message received: '<?xml version='1.0' ?>
    <UpdateSourceMessage MessageType='ScanByUpdateSource'>
       <ForceScan>TRUE</ForceScan>
       <UpdateSourceIDs>
     		<ID>{A1B2C3D4-1234-1234-A1B2-A1B2C3D41234}</ID>
       </UpdateSourceIDs>
     </UpdateSourceMessage>'
    
  4. 查看 LocationServices.log ,验证客户端是否看到了正确的 WSUS URL。 LocationServices.log

    WSUSLocationReply : <WSUSLocationReply SchemaVersion="1
    ...
    <LocationRecord WSUSURL="https://SERVER.CONTOSO.COM:8531" ServerName="SERVER.CONTOSO.COM"
    ...
    </WSUSLocationReply>
    
  5. 查看 WUAHandler.log ,验证客户端是否可以成功扫描。

    Enabling WUA Managed server policy to use server: https://SERVER.CONTOSO.COM:8531
    ...
    Successfully completed scan.
    

扫描 HTTPS 配置的 WSUS 服务器的设备的 TLS 证书固定

(在 2103 中引入)

从 Configuration Manager 2103 开始,可以通过强制实施证书固定,进一步提高针对 WSUS 的 HTTPS 扫描的安全性。 若要完全启用此行为,请将 WSUS 服务器的证书添加到客户端上的新 WindowsServerUpdateServices 证书存储,并确保通过 客户端设置启用证书固定。 有关 Windows 更新代理更改的详细信息,请参阅 扫描更改和证书使用 WSUS 为 Windows 设备添加安全性以获取更新 - Microsoft技术社区

为 Windows 更新客户端强制实施 TLS 证书固定的先决条件

  • Configuration Manager 版本 2103
  • 确保 WSUS 服务器和软件更新点配置为使用 TLS/SSL
  • 将 WSUS 服务器的证书添加到客户端上的新 WindowsServerUpdateServices 证书存储
    • 将证书固定与云管理网关 (CMG) 结合使用时, WindowsServerUpdateServices 存储需要 CMG 证书。 如果客户端从 Internet 切换到 VPN,则存储中 WindowsServerUpdateServices 需要 CMG 和 WSUS 服务器证书。

注意

对于 Windows 更新客户端强制实施 TLS 证书固定以检测更新客户端设置,使用默认值“”继续成功运行设备的软件更新扫描。 这包括通过 HTTP 和 HTTPS 进行扫描。 证书固定在客户端 WindowsServerUpdateServices 存储中且 WSUS 服务器配置为使用 TLS/SSL 之前,证书固定才会生效。

为扫描 HTTPS 配置的 WSUS 服务器的设备启用或禁用 TLS 证书固定

  1. 在 Configuration Manager 控制台中,转到“管理>客户端设置”。
  2. 选择 “默认客户端设置” 或一组自定义客户端设置,然后从功能区中选择“ 属性 ”。
  3. “客户端设置”中选择“软件更新”选项卡
  4. 为 Windows 更新客户端强制实施 TLS 证书固定以检测更新 设置选择以下选项之一:
    • :不要为 WSUS 扫描启用 TLS 证书固定
    • :启用在 WSUS 扫描期间对设备强制实施 TLS 证书固定 (默认)
  5. 验证客户端 是否可以扫描更新。

后续步骤

部署软件更新