从Java密钥库获取证书详细信息

时间:2017-12-08 13:28:10

标签: java certificate keystore sim-card

问题陈述: 外部实体将证书的序列号发送到我的系统。使用该序列号,我的系统必须查找或获取证书详细信息(例如:通过在线下载或使用Java密钥库预加载)并将其用于签名验证。

我找不到如何使用序列号从在线下载证书。但是,即使它是,我也不会哎呀,因为你知道为什么。

相反,我想使用Java Key Store(JKS)并获取认证详细信息。但是JKS需要别名和密码。

那么,你现在建议我去那个外部实体的人,并要求他发送认证细节而不是序列号?如果是这样的安全合规性?因为我们正在使用远程供应架构为嵌入式UICC技术规范Versio 3.0开发电信域。

1 个答案:

答案 0 :(得分:2)

CA仅发布其根证书和中间证书。序列号通常不用于下载,但最终颁发的证书中包含URL。

总结:您无法按序列号查找证书,除非您的CA具有要下载的特定服务,或者您有预先配置的CA证书列表,例如在密钥库中。

假设您有一个包含可能证书的密钥库,您可以列出所有可用的别名,加载证书并检查序列号是否与提供的序列号匹配。您根本不需要任何密码。

 Enumeration enumeration = keystore.aliases();
 while(enumeration.hasMoreElements()) {
        String alias = (String)enumeration.nextElement();
        X509Certificate certificate = (X509Certificate) keystore.getCertificate(alias);
        BigInteger serialNumber = certificate.getSerialNumber()

    }

请注意,不同CA之间的序列号不是唯一的