我将把根证书和中间证书(来自不同的CA)存储到某个KVStore中。
问题:我有一个叶子证书(仅),我想根据自己商店中的证书进行验证。叶子证书的Authority Key Identifier
== Subject Key Identifier
的父级必须已经存在于KVStore中。
问题:我应该在KVStore中用作密钥吗?
1. Subject Key Identifier
:certificate
,或者在单个CA或不同CA中可以相同。续订或密钥旋转如何?
2. Subject Key Identifier + Subject DN
:certificate
-不确定与first的区别。
3. Subject Key Identifier
:列表[certificate
]
4. Serial Number + Issuer
是唯一的,但叶子证书不包含有关父级的日期。
Subject Key Identifier
是经过认证的公钥上的哈希值。因此,根据CA的密钥轮换策略,这可能会或可能不会在证书续订期间更改。因此,不能保证映射SKI:certificate
是唯一的。
[如选项2中的组合索引不会改变。
选项4应该排除在外,因为子证书不知道其父证书的颁发者和序列号。
选项3在大多数情况下可能是有效的解决方案,但是,对于X.509证书,Authority Key Identifier
扩展名不是必需的。因此,您可能必须处理没有AKI扩展名的叶子证书。
这通常会导致选项5:Subject DN: list[certificate]
。最好是在最上面有最可能的CA证书的排序列表。
但是,如果您的应用程序仅处理带有AKI扩展名的叶子证书,并且所有CA证书都需要在续订期间进行密钥轮换,选项1可能会提高性能。在这种情况下,我还要保留一个条目Subject DN: list[Subject Key Identifier]
。