从 java 密钥库获取证书详细信息
Get certificate details from java key store
朋友,
问题陈述:
外部实体将证书的 序列号 发送到我的系统。使用该序列号,我的系统必须找出或获取证书详细信息(例如:通过在线下载或使用 Java 密钥库预加载)并将其用于签名验证。
我找不到如何使用序列号从网上下载证书。但是,即使它是,我也不会抱怨,因为你知道为什么。
相反,我想使用 Java 密钥库 (JKS) 并获取认证详细信息。但 JKS 需要别名和密码。
那么,现在您是否建议我去找那个外部实体人员,让他发送认证详细信息而不是序列号?如果是这样,是否符合安全要求?因为我们正在使用针对嵌入式 UICC 技术规范版本 3.0 的远程配置架构在电信领域工作。
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 之间不是唯一的
朋友,
问题陈述: 外部实体将证书的 序列号 发送到我的系统。使用该序列号,我的系统必须找出或获取证书详细信息(例如:通过在线下载或使用 Java 密钥库预加载)并将其用于签名验证。
我找不到如何使用序列号从网上下载证书。但是,即使它是,我也不会抱怨,因为你知道为什么。
相反,我想使用 Java 密钥库 (JKS) 并获取认证详细信息。但 JKS 需要别名和密码。
那么,现在您是否建议我去找那个外部实体人员,让他发送认证详细信息而不是序列号?如果是这样,是否符合安全要求?因为我们正在使用针对嵌入式 UICC 技术规范版本 3.0 的远程配置架构在电信领域工作。
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 之间不是唯一的