默认情况下,iOS 不会对 HTTPS 连接强制执行证书透明度。
从 iOS 10 开始,Apple 引入了新的 ATS 配置密钥 NSRequiresCertificateTransparency。默认情况下这是 NO,如果开发人员想要启用 CT 检查,他可以将其设置为 YES。但是,此密钥存在于“NSExceptionDomains”级别,并且仅适用于列为异常域的特定域。
有没有一种方法可以让操作系统对所有域强制执行 CT 检查,而无需手动将每个域列为异常域(从而忘记其中的一些域)?
默认情况下,iOS 不会对 HTTPS 连接强制执行证书透明度。
从 iOS 10 开始,Apple 引入了新的 ATS 配置密钥 NSRequiresCertificateTransparency。默认情况下这是 NO,如果开发人员想要启用 CT 检查,他可以将其设置为 YES。但是,此密钥存在于“NSExceptionDomains”级别,并且仅适用于列为异常域的特定域。
有没有一种方法可以让操作系统对所有域强制执行 CT 检查,而无需手动将每个域列为异常域(从而忘记其中的一些域)?
这不是现在可以做的事情。鉴于 Apple 使用这些密钥的历史,我认为目前此设置默认设置为所有域的 NO,因为许多域当前不支持它。
我的猜测(此时纯粹是我的猜测)是,随着服务器端支持的增长,Apple 可能会为所有 URL 添加对此的支持,但随后更改为仅适用于不支持证书透明度的 URL。
在这一点上,它主要是为了验证您的核心服务器证书没有受到损害。我只想添加支持它的已知服务器并将它们包含在NSExceptionDomains
列表中。但是,我看到有些人在 iOS 9 设备上遇到问题,其NSExceptionDomains
条目仅包含证书透明度(在 iOS 9 上无法识别)。确保您在进行这些更改后测试您是否支持 iOS 9。