读取pkcs12证书信息
Posted
技术标签:
【中文标题】读取pkcs12证书信息【英文标题】:Reading pkcs12 certificate information 【发布时间】:2013-06-02 22:42:28 【问题描述】:我在读取证书信息时遇到问题。我想以编程方式在 android 中使用带有 bouncycastle 库的 java 来阅读完整信息。现在,我只是在控制台中使用 keytool 命令:
>keytool -list -keystore 1.p12 -storetype pkcs12 -v
有什么建议吗?
【问题讨论】:
你试过什么? 我已经找到了解决方案(如下),感谢您的关注。 【参考方案1】:我找到了解决方案,主要思想是将证书转换为 x509,然后获取 SubjectDN 并解析值。
public class TestClass
public static void main(String[] args) throws Exception
KeyStore p12 = KeyStore.getInstance("pkcs12");
p12.load(new FileInputStream("pkcs.p12"), "password".toCharArray());
Enumeration<String> e = p12.aliases();
while (e.hasMoreElements())
String alias = e.nextElement();
X509Certificate c = (X509Certificate) p12.getCertificate(alias);
Principal subject = c.getSubjectDN();
String subjectArray[] = subject.toString().split(",");
for (String s : subjectArray)
String[] str = s.trim().split("=");
String key = str[0];
String value = str[1];
System.out.println(key + " - " + value);
【讨论】:
请记住使用 java.security.* 类而不是 javax.security.* 嗨@DiegoPlentz 此代码并不总是有效。在我的机器上, p12.getCertificate(alias) 返回 null。 pfx 文件由 openssl 创建为“openssl pkcs12 -export -out 1.pfx -in server.crt -inkey server.key”。我用另一个由 Windows 证书管理器导出的 pfx 文件测试了你的代码,它工作正常。 这对我来说很好用,但有人知道如何在设备上安装 .p12 文件吗? @ChangmingSun 也许尝试传递“-name”选项。更多信息:***.com/questions/21138420/… 一篇不错的文章,其中包含更多细节。pixelstech.net/article/…以上是关于读取pkcs12证书信息的主要内容,如果未能解决你的问题,请参考以下文章
通过java读取PKCS7和.p12文件证书信息(subjectDN,vaildstartfrom,ValildTo ..)
Python:使用 pyOpenSSL.crypto 读取 pkcs12 证书
ktor sslConnector 从 jar p12 pkcs12 jks 密钥库和 mtls 相互 ssl 连接中服务/读取
坑爹微信之读取PKCS12流时出现的java.io.IOException: DerInputStream.getLength