管理传输层安全性 (TLS)

适用于:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 11、Windows 10

配置 TLS 密码套件顺序

不同的 Windows 版本支持不同的 TLS 密码套件和优先级顺序。 请参阅 TLS/SSL (Schannel SSP) 中的密码套件,了解不同 Windows 版本中 Microsoft Schannel 提供程序支持的默认顺序。

注意

还可以使用 CNG 函数修改密码套件列表,有关详细信息,请参阅确定 Schannel 密码套件的优先级

对 TLS 密码套件顺序的更改将在下次启动时生效。 在重启或关闭之前,现有顺序保持有效。

警告

不支持更新默认优先级排序的注册表设置,并且可能会通过服务更新进行重置。

使用组策略配置 TLS 密码套件顺序

可以使用 SSL 密码套件顺序组策略设置来配置默认的 TLS 密码套件顺序。

  1. 在组策略管理控制台中,转到“计算机配置”>“管理模板”>“网络”>“SSL 配置设置”。

  2. 双击“SSL 密码套件顺序”,然后单击“启用”选项。

  3. 右键点击“SSL 密码套件”框,然后从弹出菜单中选择“全选”。

    Group Policy setting

  4. 右键单击所选文本,然后从弹出菜单中选择“复制”。

  5. 将文本粘贴到文本编辑器(如 notepad.exe)中,使用新的密码套件顺序列表进行更新。

    注意

    TLS 密码套件顺序列表必须采用严格的逗号分隔格式。 每个密码套件字符串的右侧以逗号 (,) 结尾。

    此外,密码套件列表限制为 1,023 个字符。

  6. 将 SSL 密码套件中的列表替换为更新后的有序列表。

  7. 单击“确定”或“应用”。

使用 MDM 配置 TLS 密码套件顺序

Windows 10 策略 CSP 支持配置 TLS 密码套件。 有关详细信息,请参阅 Cryptography/TLSCipherSuites

使用 TLS PowerShell Cmdlet 配置 TLS 密码套件顺序

TLS PowerShell 模块支持获取 TLS 密码套件的有序列表、禁用密码套件和启用密码套件。 有关详细信息,请参阅 TLS 模块

配置 TLS ECC 曲线顺序

从 Windows 10 和 Windows Server 2016 开始,可以独立于密码套件顺序配置 ECC 曲线顺序。 如果 TLS 密码套件顺序列表具有椭圆曲线后缀,则在启用后,它们将被新的椭圆曲线优先级顺序覆盖。 这使得组织能够使用组策略对象以相同的密码套件顺序配置不同版本的 Windows。

注意

在 Windows 10 之前,密码套件字符串附加有椭圆曲线,以确定曲线优先级。

使用 CertUtil 管理 Windows ECC 曲线

从 Windows 10 和 Windows Server 2016 开始,Windows 通过命令行实用工具 certutil.exe 提供椭圆曲线参数管理。 椭圆曲线参数存储在 bcryptprimitives.dll 中。 使用 certutil.exe,管理员可以分别在 Windows 中添加和删除曲线参数。 Certutil.exe 将曲线参数安全地存储在注册表中。 Windows 可以通过与曲线关联的名称开始使用曲线参数。

显示已注册的曲线

使用以下 certutil.exe 命令显示为当前计算机注册的曲线列表。

certutil.exe –displayEccCurve

Certutil display curves

图 1 Certutil.exe 输出显示已注册曲线的列表。

添加新曲线

组织可以创建和使用其他受信任实体研究的曲线参数。 想要在 Windows 中使用新曲线的管理员必须添加这些曲线。 使用以下 certutil.exe 命令将曲线添加到当前计算机:

Certutil —addEccCurue curveName curveParameters [curveOID] [curveType]
  • curveName 参数表示添加了曲线参数的曲线的名称。
  • curveParameters 参数表示包含要添加的曲线参数的证书的文件名。
  • curveOid 参数表示证书的文件名,其中包含要添加的曲线参数的 OID(可选)。
  • curveType 参数表示 EC 命名曲线注册表中命名曲线的十进制值(可选)。

Certutil add curves

图 2 使用 certutil.exe 添加曲线。

删除以前添加的曲线

管理员可以使用以下 certutil.exe 命令删除以前添加的曲线:

certutil.exe –deleteEccCurve curveName

管理员从计算机中删除曲线后,Windows 无法使用该命名曲线。

使用组策略管理 Windows ECC 曲线

组织可以使用组策略和组策略首选项注册表扩展将曲线参数分发到已加入域的企业计算机。 分发曲线的过程如下:

  1. 在 Windows 10 和 Windows Server 2016 上,使用 certutil.exe 将新注册的命名曲线添加到 Windows。

  2. 在同一台计算机上,打开组策略管理控制台 (GPMC),创建一个新的组策略对象,然后对其进行编辑。

  3. 导航到“计算机配置”|“首选项”|“Windows 设置”|“注册表”。 右键单击“注册表”。 将鼠标悬停在“新建”上,选择“集合项”。 重命名集合项以匹配曲线的名称。 你将为 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Cryptography\ECCParameters 下的每个注册表项创建一个注册表集合项。

  4. 通过为 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Cryptography\ECCParameters[curveName] 下列出的每个注册表值添加一个新的注册表项,配置新创建的组策略首选项注册表集合。

  5. 将包含组策略注册表集合项的组策略对象部署到应接收新命名曲线的 Windows 10 和 Windows Server 2016 计算机。

    Screenshot of the Preferences tab of the Group Policy Management Editor.

    图 3 使用组策略首选项分发曲线

管理 TLS ECC 顺序

从 Windows 10 和 Windows Server 2016 开始,ECC 曲线顺序组策略设置可用于配置默认的 TLS ECC 曲线顺序。 使用通用 ECC 和此设置,组织可以将其自己的受信任命名曲线(已获准与 TLS 一起使用)添加到操作系统,然后将这些命名曲线添加到曲线优先级组策略设置中,以确保在将来的 TLS 握手中使用它们。 收到策略设置后,新的曲线优先级列表将在下次重启时生效。

Screenshot of the EEC Curve Order dialog box.

图 4 使用组策略管理 TLS 曲线优先级