我正在研究从某个政府门户收集数据的项目。
为了获得有效数据,我必须发出包含一些确切xml数据的请求。xml数据还必须包含我的证书的公钥。门户然后加密返回的数据。有了证书的私钥,我便可以解密返回的数据。到目前为止,一切正常。但是,如何获取xml证书的公钥?到目前为止,手动操作。我在Chrome浏览器中找到了其他个人证书。将其导出到不带私钥X.509且编码为Base-64(CER)的文件中。然后在文本编辑器中打开导出的文件,删除“ ----- BEGIN CERTIFICATE -----”和'---- END CERTIFICATE -----',其余的都放入XML]
我需要通过Java代码(BouncyCastle库?)来重复所有这些。我认为这很容易,但是例子很少。
谢谢。
我终于在解决方案上进行了搜索,类JcaPEMWriter
(BouncyCastle库)成功完成了。现在,输出与手动导出的相同。
public static String convertCertificateToPEM(X509Certificate signedCertificate) throws IOException {
StringWriter signedCertificatePEMDataStringWriter = new StringWriter();
JcaPEMWriter pemWriter = new JcaPEMWriter(signedCertificatePEMDataStringWriter);
pemWriter.writeObject(signedCertificate);
pemWriter.close();
return signedCertificatePEMDataStringWriter.toString();
}