对 Microsoft Edge 浏览器 TLS 服务器证书验证的更改

注意

Microsoft Edge for Business 现已在 Edge 稳定版本 116 中提供! 详细了解 内置了本机企业级安全性、生产力、可管理性和 AI 的全新专用工作经验。

当 Microsoft Edge 与 HTTPS 服务器建立连接时,Edge 会验证服务器是否提供了由浏览器信任的实体颁发的证书。 此信任关系通过 证书信任列表 建立,负责执行检查的组件称为 证书验证程序

在 Microsoft Edge 的以前版本中,默认证书信任列表和证书验证程序逻辑均由基础操作系统 (操作系统) 平台提供。

对于托管设备,从 Windows 和 macOS 上的 Microsoft Edge 112 开始,默认证书信任列表和证书验证程序均由浏览器提供并随浏览器一起提供。 此方法将列表和验证程序与主机操作系统的根存储区分离,以执行默认验证行为。 有关更改时间的更多详细信息,请参阅推出时间线和测试指南

即使在更改后,浏览器除了信任 Microsoft Edge 附带的内置根之外,还会查询用户和/或企业安装在本地安装根的基础平台,并信任这些根。 因此,用户或企业将更多根安装到主机操作系统根存储的方案应继续工作。

此更改意味着证书验证逻辑在 Windows 和 macOS 上的 Microsoft Edge 中一致地工作。 在未来确定的版本中,推出也将适用于 Linux 和 Android。 由于 Apple App Store策略,Apple 提供的根存储和证书验证程序将继续在 iOS 和 iPadOS 上使用。

默认证书信任列表源

Windows 和 macOS 上的 Microsoft Edge 附带的根存储来自 Microsoft 受信任的根证书计划定义的证书信任列表 (CTL) 。 此根证书程序定义 Microsoft Windows 附带的列表。 因此,客户应该不会看到用户可见的更改。

在 macOS 上,如果证书由平台信任但不受 Microsoft 受信任的根证书计划信任的根证书颁发,则证书不再受信任。 这种缺乏信任的情况预计并不常见,因为大多数服务器已经确保它们使用的 TLS 证书受到 Microsoft Windows 的信任。

汇报按照 Microsoft 受信任的根计划的发行说明中所述的节奏发布。

推出时间线和测试指南

从 Microsoft Edge 109 开始, (MicrosoftRootStoreEnabled) 的企业策略和 edge://flags (“Microsoft 根存储”) 中的标志可用于控制何时使用内置根存储和证书验证程序。

非企业管理的设备开始通过 Microsoft Edge 109 中的受控功能推出 (CFR) 接收该功能,并在 Edge 111 中达到非托管设备的 100%。 有关详细信息,请参阅 Microsoft Edge 配置和试验,其中介绍了 Microsoft Edge 中的 CFR 的工作原理。 对于企业管理的设备,通过 Microsoft Edge 111 使用现有的平台提供的实现。

从 Microsoft Edge 112 开始,所有 Windows 和 macOS 设备(包括企业托管设备)的默认更改为使用浏览器附带的验证程序实现和 CTL。 MicrosoftRootStoreEnabled 策略在此版本中继续可用,使企业能够在发现意外问题时还原以前的行为,并将问题报告给 Microsoft。

Microsoft 建议具有中断和检查代理或其他涉及由根颁发的 TLS 服务器证书(不在 Microsoft CTL 中)的企业主动识别任何兼容性问题并将其报告给 Microsoft。

在 Microsoft Edge 115 中,已删除对 MicrosoftRootStoreEnabled 策略的支持。

Windows 上已知的本地受信任的证书行为差异

更严格的 RFC 5280 合规性

与旧的基于平台的验证程序相比,新的内置证书验证程序在实施 RFC 5280 要求方面更加严格。

更严格的 RFC 5280 合规性示例包括:

  1. 必须缺少 ECDSA 算法的算法参数。 旧的验证程序将忽略参数,而新验证程序拒绝证书。 有关详细信息,请参阅Chromium问题1453441
  2. 指定 IP 地址的名称约束必须包含 IPv4 地址的 8 个八位字节和 IPv6 地址的 32 个八位字节。 如果证书指定了空 IP 地址,则应重新颁发证书,并完全省略 IP 地址名称约束。
  3. 具有空“排除”列表的名称约束无效。 Windows 证书查看器在详细信息中Name Constraints显示此列表。Excluded=None 有关详细信息,请参阅Chromium问题1457348。 完全省略它,而不是指定空列表。

应用程序策略扩展

在 Microsoft Edge 115 之前,新的验证程序不支持 CertGetEnhancedKeyUsage 函数文档中所述的仅限 Windows 的“应用程序策略”扩展字段。 在 Microsoft Edge 115 中,进行了更新以忽略扩展。 有关详细信息,请参阅Chromium问题1439638

此扩展使用对象标识符 (OID) 1.3.6.1.4.1.311.21.10。 如果证书包含此扩展并将其标记为严重,则连接失败并出现 ERR_CERT_INVALID

如果此方案适用于证书,可以使用以下方法之一检查:

  1. 通过 about:net-export 捕获的网络日志包括 中的CERT_VERIFIER_TASK字符串ERROR: Unconsumed critical extension,其 OID 值为 2B060104018237150A
  2. 使用 Windows 证书查看器打开证书。 在“显示”筛选器中,选择“仅限关键扩展”。 检查是否存在“应用程序策略”字段。
  3. 使用 -dump 开关运行certutil.exe,并查看关键应用程序策略扩展字段检查的输出。

如果证书当前使用此扩展,请确保它现在在 Microsoft Edge 115 中有效。 或者,重新颁发证书,而仅依赖增强的密钥用法字段 (OID 2.5.29.37) 指定允许的用法。

Windows 上的已知吊销检查行为差异

除了更严格的 RFC 5280 要求外,新的验证程序 不支持 基于 LDAP 的证书吊销列表 (CRL) URI。

如果企业启用了 RequireOnlineRevocationChecksForLocalAnchors 策略,并且 CRL 对于 RFC 5280 无效,则你的环境可能会开始看到 ERR_CERT_NO_REVOCATION_MECHANISM 和/或 ERR_CERT_UNABLE_TO_CHECK_REVOCATION 错误。

在 Microsoft Edge 114 之前,基于Chromium的新验证程序强制实施 CRL 的“基线要求”最长年龄。 对于叶吊销,当前最大期限为 7 天,对于中间吊销,当前最大期限为 366 天。 检查是通过检查当前时间减去“此更新” (“生效日期”) 未超过这些最大值来执行的。 在 Microsoft Edge 114 中,不再对非公开受信任的证书强制实施这些要求。 有关详细信息,请参阅Chromium问题971714

由于新的验证程序通过浏览器的网络堆栈下载吊销信息,HTTP 严格传输安全 (HSTS) 升级也适用。 如果主机配置了 HSTS 引脚,则此升级可能会与 CRL 信息通过 HTTP (而不是 HTTPS) 托管的要求不兼容。 如果此方案对环境产生负面影响,我们建议你通过Chromium问题1432246共享有关影响的详细信息。

如果遇到 ERR_CERT_NO_REVOCATION_MECHANISM,则应确认证书指定的 URI 处的 CRL 返回 DER 编码 (而不是 PEM 编码) 响应。

如果遇到 ERR_CERT_UNABLE_TO_CHECK_REVOCATION 错误,应确认证书颁发者也是 CRL 颁发者、未设置证书的 cRLIssuer 字段、托管 CRL 的 URI 都使用 HTTP 协议,并且不在配置为使用 HSTS 的主机上,并且 CRL 最近已足够颁发。

另请参阅