【发布时间】:2021-11-26 01:25:47
【问题描述】:
我有 .cer 证书。当我打开它时,它会显示我的证书链。
使用此代码,我将证书读取到 x509certificate 文件。
File certificateFile = new File("C:\\Users\\grish\\Desktop\\certificateForValidation.cer");
InputStream inputStream = new FileInputStream(certificateFile);
X509Certificate certificate = new X509CertImpl(inputStream);
我想从那个文件中获取证书链! (终端实体、CA、根) 我如何在 java 中以编程方式做到这一点。
使用 C#,这更容易
X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
然后我可以从ch获得所有证书。
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
-
从您的问题中不清楚 CA 和 ROOT 是否也包含在该 .cer 文件中(在您的代码示例中具有 .p7b 扩展名...... wtf?);如果是,@sebmal 的回答应该指明方向;如果不是...您是否尝试过使用 Java CertPathBuilder 类?
-
哦,不,上帝。那一定是 .cer 文件,对不起!从 p7b 我可以读取所有证书
-
Certpathbuilder 需要颁发者证书,.cer 文件中不存在该证书
标签: java certificate x509certificate x509