TLS 服务器身份验证证书必须符合 Apple 的证书透明性(CT)策略,才能在 Apple 平台上被评估为受信任的。
如果证书不符合 Apple 的政策,则会导致 TLS 连接失败,这可能会中断应用程序与 Internet 服务的连接或 Safari 的无缝连接能力。
在 2021 年第一季度,Apple 提出了自己的证书透明度日志计划。
政策要求
加入 Apple 证书透明度日志计划,日志必须满足以下所有要求:
- 日志实例必须按照 RFC6962 中的规定来实施 CT。
- 同一日志不得在不同时间并且/或向不同相关方呈现两个或更多相互冲突的墨克树视图。
- 日志的最大合并延迟 (MMD) 为 24 小时。
- 如果日志在 MMD 期限内为某个证书创建了 SCT,则日志必须包含这个证书。
- 日志实例必须满足 Apple 对于正常运行时间要达到 99%(由 Apple 来衡量)的要求。
- 日志的服务中断时长不能超过 MMD。
- Apple 的合规性根 CA 会发放相应的证书,以监控日志对于相关政策的遵守情况;因此,日志必须接受这些证书。
- 日志必须信任 Apple 受信任证书存储区内包含的所有根 CA 证书。日志可以信任 Apple 受信任证书存储区内可能并不包含的其他根证书。
每个运营商最多可以使用三个合格的或可用的日志实例。对于不存在证书过期限制的日志,实例会以 URL 和日志签名密钥的形式呈现。对于存在证书过期限制的日志,一组分时日志会被视为单个实例。以下示例呈现的就是一个运行四个时间分段的单日志实例:
Company A 'Loggy 2020' log: accepts certificates that expire between 2020-01-01 00:00:00 UTC - 2021-01-01 00:00:00 UTC
Company A 'Loggy 2021' log: accepts certificates that expire between 2021-01-01 00:00:00 UTC - 2022-01-01 00:00:00 UTC
Company A 'Loggy 2022' log: accepts certificates that expire between 2022-01-01 00:00:00 UTC - 2023-01-01 00:00:00 UTC
Company A 'Loggy 2023' log: accepts certificates that expire between 2023-01-01 00:00:00 UTC - 2024-01-01 00:00:00 UTC
对于 notBefore 值大于或等于 2021 年 4 月 21 日(2021-04-21T00:00:00Z)的证书,基于证书生存期的嵌入式 SCT 数量:
对于 notBefore 值小于 2021 年 4 月 21 日(2021-04-21T00:00:00Z)的证书,基于证书生存期的嵌入式 SCT 数量:
对于 notBefore 值等于或大于 2021-04-21T00:00:00Z 的证书,日志操作员可以拒绝不包含 serverAuth EKU 的叶子证书。
日志操作员必须至少提前 45 天书面通知 certificate-transparency-program@group.apple.com ,以了解其日志接受的一组叶子证书的任何更改。