3

当我在套接字连接中收到 SSL 握手上的 X509Certificate 链时,我必须将 X509Certificate 链导出到 base64 编码的 .cer 文件。

我尝试使用以下代码。但文件内容与原证书不一样。

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();

上述代码中有任何建议/更正吗?

4

1 回答 1

0

我相信您的代码将证书连接在一起,然后在整个过程中添加 BEGIN 和 END 标签。

而是尝试在同一文件中的每个证书周围放置 BEGIN/END 标签。

例如

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

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

-----BEGIN CERTIFICATE-----
<Base64 certN data>
-----END CERTIFICATE-----
于 2013-05-29T18:35:23.400 回答