繁体   English   中英

是否有任何Java API将证书从“ DER”格式转换为pkcs#12格式

[英]Is there any java API to convert certificate from 'DER' format to pkcs#12 format

我需要将证书从DER格式转换为pkcs#12格式。 我知道我可以使用openssl命令执行此操作。 我正在寻找可以做到这一点的java API / Class。 任何帮助将不胜感激。

您可以尝试将PKCS#12容器作为密钥库加载:

java.security.KeyStore ks = java.security.KeyStore.getInstance("PKCS12");
ks.load(new java.io.FileInputStream("yourStore.p12"), "yourPassword".toCharArray());

加载后,您可以枚举容器内的元素:

for(Enumeration enum = ks.aliases(); enum.hasMoreElements(); ) {
    String alias = (String) enum.nextElement();
    System.out.println("@:" + alias);
    if (ks.isKeyEntry(alias)) {
        System.out.println("return PrivateKey");
        PrivateKey pk = (PrivateKey) ks.getKey(alias, password);
        // ...
    }
}

这可以从PEM转换pkcs

openssl pkcs12 -export -in pem-certificate-and-key-file -out pkcs-12-certificate and-key-file

因此,让我们先将DER转换为PEM

openssl dsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file

据我了解,PEM只是DER内容的Base64编码字符串,带有适当的页眉和页脚行。 要转换为Base64,可以使用例如javax.mail.internet.MimeUtility

我从Portecle走了很多路。

如果必须以编程方式执行此操作,那么您所需的大部分内容都在Java的KeyStore类中。 至于用户友好性,它对朋友的选择是非常有选择性的。 打开商店,添加到商店,然后保存。 如果您需要证书链,那会更加复杂。

至于从DER编码中检索证书,请参阅X509Certificate javadoc。 特别是对CertificateFactory的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM