2013-05-28 49 views
3

當我在套接字連接的SSL握手中收到X509Certificate鏈時,我必須將X509Certificate鏈導出到base64編碼的.cer文件。Java - 如何將X509Certificate鏈數據導出到Base64編碼的證書文件?

我試着用下面的代碼。但是文件內容與原始證書不一樣。

private static final String BEGIN_CERT = "-----BEGIN CERTIFICATE-----"; 

private static final String END_CERT = "-----END CERTIFICATE-----"; 

X509Certificate[] x509Certificates; 


    -------------- 
    -------------- 


    String certContent=""; 

    for(int i=0;i<x509Certificates.length;i++) 
    { 

     certContent += Base64.encode(x509Certificates[i].getEncoded()); 

    } 



BufferedWriter writer = new BufferedWriter(new FileWriter("mycert.cer")); 

writer.write(BEGIN_CERT); 

writer.newLine(); 

writer.write(certContent); 

writer.newLine(); 

writer.write(END_CERT); 

writer.close(); 

以上代碼中的任何建議/更正?

回答

0

我相信你的代碼將證書連接在一起,然後在整個事物中添加BEGIN和END標籤。

請嘗試將BEGIN/END標籤放在同一個文件的EACH證書周圍。

例如

-----BEGIN CERTIFICATE----- 
<Base64 cert1 data> 
-----END CERTIFICATE----- 

-----BEGIN CERTIFICATE----- 
<Base64 cert2 data> 
-----END CERTIFICATE----- 

-----BEGIN CERTIFICATE----- 
<Base64 certN data> 
-----END CERTIFICATE----- 
相關問題