HTTPs 的主题发布密钥固定

Subject Publish Key Pinning for HTTPs

我正在为我的移动应用程序实施 SPKI Pinning,我想知道当我用另一个 CA 续订时主题发布密钥是否会改变? 我仍然使用相同的 CSR 来生成证书。人们说如果我们使用相同的证书签名请求文件 (CRS),Public 密钥将是相同的,但我不确定 CA 是否也是一个因素。

简短的回答是:不,它不应该改变,只要你做的正确。

It is recommended that when you specify a SPKI HTTP header you should provide at least two Subject Public Key Information (SPKI) fingerprint of private keys in your control (one for production and other for backup). Now, as reported here,在私钥丢失的情况下,通常的做法是指定知名 CA 的 SPKI 指纹,但这会使 HPKP 无效,因为如果 CA 被泄露,那么你基本上是在说 "trust the CA issued certificates"。这就是为什么建议提供您自己的 public 密钥的 SPKI 指纹:一个用于常用,另一个用于私钥丢失。 因此,只要您在 SPKI HTTP header 中指定您自己的 public 密钥,每当您使用另一个 CA(具有相同的 CSR 或新的 CSR)生成新证书时,您的 public 密钥将相同,SPKI 仍将有效。