我正在为一些基于python的程序开发X509存储系统。所有证书都保存在PostgresSQL数据库中以便于访问。所有工作正常,当为每个主题(用户或CA权威)时,只有一个证书。然后找到验证路径是容易的,因为发行人现场唯一标识一个证书:当一些证书续期因过期或任何其他原因X509证书 - 维护认证路径
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root) -> CA_cert_root(CA_cert_root)
的问题开始。 然后两个或多个证书具有相同的主题。在这种情况下,有多种可能的认证途径。
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root)(old)->....
-> CA_cert_class1(CA_cert_root)(new)->....
尝试每种组合都不是解决方案。此外,删除过期证书不是解决方案,因为我需要它们来验证旧的数字签名。
问题:如何唯一标识X509证书内的颁发者证书。我想,这与X509v3扩展有关。我不知道如何使用它们。
谢谢!这是我正在寻找的。现在我必须弄清楚,如何使用OpenSSL API在cpp中添加扩展。 – Marek 2013-05-14 00:21:20
我在cpp中找到了很好的例子: http://stackoverflow.com/questions/2883164/openssl-certificate-lacks-key-identifiers – Marek 2013-05-14 00:29:15