我需要将证书从DER格式转换为pkcs#12格式。我知道我可以使用openssl命令执行此操作。我正在寻找可以完成这项工作的java API / Class。 任何帮助将不胜感激。
答案 0 :(得分:1)
您可以尝试将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);
// ...
}
}
答案 1 :(得分:0)
这可以从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
答案 2 :(得分:0)
据我了解,PEM只是DER内容的Base64编码字符串,具有适当的页眉和页脚行。要转换为Base64,您可以使用javax.mail.internet.MimeUtility
作为示例。
答案 3 :(得分:0)
我从Portecle那里获得了很多好处。
如果必须以编程方式完成,那么您需要的大部分内容都在Java的KeyStore类中。至于用户友好性,嗯,它对其朋友非常有选择性。打开商店,添加商店,保存。如果您需要证书链,那将会更复杂一些。
至于从DER编码中检索证书,请参阅X509Certificate javadoc。特别是对CertificateFactory的引用。