2015-10-07 32 views
1

我必須在我的Java類中打開證書文件。 Certyficates由DER算法編碼。我怎樣才能解碼這個文件?通過DER算法在Java中解碼證書

我上傳certyficate到我的servlet,這樣

InputStream in = getResourceAsStream("/certyficate.cer"); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)) 

現在我有這個文件進行解碼,我該怎麼辦呢?

現在我有有,get.Instance麻煩()

enter image description here

我用它究竟如何在文檔,但我有一個錯誤就像這個截圖

如何我解決這個問題?

+0

你可以嘗試在這個問題上的代碼:http://stackoverflow.com/q/11621414或類似的東西

import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; 

將證書解碼使用彈性城堡http://www.bouncycastle.org/wiki/display/JA1/X.509+Public+Key+Certificate+and+Certification+Request+Generation – zapl

回答

1

鑑於含有證書的InputStream in,您可以解密證書 到java.security.cert.CertificateFactory。支持DER和PEM編碼。

進口你將需要:

try { 
    CertificateFactory cf = CertificateFactory.getInstance("X.509"); 
    X509Certificate cert = (X509Certificate) cf.generateCertificate(in); 
} catch (CertificateException e) { 
    // handle failure to decode certificate 
} 
+0

許多thx佛答覆,但我有這個代碼的錯誤:「證書不能轉換爲X509證書」。你知道我該如何解決它? – Empi

+0

您能向我們展示您在'InputStream'中提供的證書數據嗎? – frasertweedale

+0

它是Windows的certmgr.msc中的普通證書。拋出錯誤,但我修復了它。 Thx尋求幫助 – Empi