导语
今天服务器受到反馈,加载平台图片资源失败。原因是不信任的数字证书,公司的服务器证书是用 WoSign 签名的。
在证书交换阶段时报错了,Google 后找到一篇 Apple 官方的声明。
PKI
公钥基础设施(PKI)是创建,管理,分发,使用,存储和撤销数字证书和管理公钥加密所需的一系列角色,策略和过程。
cross-certification
当前的场景
名称 | 含义 |
---|---|
cert 1.1 | 原 StartCom 证书 |
cert 2.1 | 原 WoSign 证书 |
cert 1 | 由 WoSign 生成的证书 |
cert 2 | 由 StartCom 生成的证书 |
cert 2.2 | StartCom 数字签名的用户 |
cert 1.2 | WoSign 数字签名的用户 |
目标
StartCom 签名的 cert 2.2 数字证书要被 PKI 1 信任
条件
Apple 信任 StartCom 的根证书,而不信任 WoSign 的根证书
原理
- StartCom 生成一个包含 WoSign 公钥的证书 (cert 2)
- cert 2.2 证书链会有两条路径 (“cert2.2→cert2” 和 “cert2.2→cert2.1→cert1” ),也就会找到 cert 1.1 因为 cert 1.1 根证书是被信任的,所以 cert 2.2 也会被信任。这是一个可以对称的过程。
关于原因,Apple 的声明中可以略知一二。
后记
为什么有些会有些不会呢?
我觉得主要有两个原因:
To avoid disruption to existing WoSign certificate holders and to allow their transition to trusted roots, Apple products trust individual existing certificates that were issued from this intermediate CA and published to public Certificate Transparency log servers by 2016-09-19. They will continue to be trusted until they expire, are revoked, or are untrusted at Apple’s discretion.
- 声明中说为了平稳的过渡,该 CA 签名的部分证书在短期内还是可用的。
- 被信任的根证书是放在客户端浏览器中的,证书这个应该保护的比较好,需要 SDK 升级进行统一处理可能会比较合适的。