簡體   English   中英

無法從.cer解析證書以將其導入密鑰庫:Java

[英]Could not parse certificate from .cer to import it in keystore: Java

我想將導出的證書(.cer)導入我的應用程序。 導出以PEM,DER轉換類型完成。 我已經在在線證書解碼器工具上測試了導出的數據,並且顯示了很好的結果,但是當我想將其導入到我的應用程序中時,我得到了:

java.security.cert.CertificateException:無法解析證書:java.io.IOException:空輸入

這是我的資料來源:

Path fileLocation = Paths.get(file.getAbsolutePath());
byte[] data = Files.readAllBytes(fileLocation);
ByteArrayInputStream bIn = new ByteArrayInputStream(data);
X509Certificate cert = (X509Certificate) 

exception -->> CertificateFactory.getInstance("X.509").generateCertificate(bIn);

keystore.setCertificateEntry(alias, cert);

編輯:方法與PEM格式證書一起工作正常,但無法導入DER。

我發現錯誤與導出.DER類型的證書有關。

這是固定的.DER導出方法:

FileOutputStream fos = new FileOutputStream(file.getAbsolutePath() + ".cer");
DEROutputStream dos = new DEROutputStream(fos);
ASN1InputStream asn1inputStream = new ASN1InputStream(new ByteArrayInputStream(chain[0].getEncoded())); // this is Certificate
dos.writeObject(asn1inputStream.readObject());
dos.flush();
fos.flush();
dos.close();
fos.close();

上面的導入方法適用於.DER和.PEM證書格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM