簡體   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