通过与BouncyCastle进行CSR签名生成的证书被视为不可信

通过与BouncyCastle进行CSR签名生成的证书被视为不可信,第1张

通过与BouncyCastle进行CSR签名生成的证书被视为不可信

如果您查看两个证书中的颁发者DN,则它们不匹配(来自的输出

openssl x509 -text
):

Issuer: C=AT, ST=Wien, L=Wien, O=Test CA, OU=Test CA, CN=Test CA/[email protected]

Issuer: [email protected], CN=Test CA, OU=Test CA, O=Test CA, L=Wien, ST=Wien, C=AT

结果,它无法将错误的颁发者与CA的主题DN相匹配。

不幸的是,

X500Name issuer = newX500Name(cacert.getSubjectX500Principal().getName())
并没有达到您的期望。RDN的顺序相反。通常,由于存在多种将ASN.1表示序列化为字符串方法,因此从字符串表示重建DN可能会失败。Java
X500Principal
具有多种可用格式
getName(...)
,甚至提供了一种为字符串映射提供您自己的OID的方法(对于更加晦涩的OID)。该方法
emailAddress
被分离也会造成问题(注意它是用逗号或用斜杠分隔的方式)。

而是从编码形式构建X500Name,这应该始终有效:

X500Name x500Name = X500Name.getInstance(cert  .getSubjectX500Principal().getEnpred());


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5134211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存