Java,从证书导出公钥(X.509,Base64 .cer)

问题描述 投票:0回答:1

我正在研究从某个政府门户收集数据的项目。

为了获得有效数据,我必须发出包含一些确切xml数据的请求。xml数据还必须包含我的证书的公钥。门户然后加密返回的数据。有了证书的私钥,我便可以解密返回的数据。到目前为止,一切正常。但是,如何获取xml证书的公钥?到目前为止,手动操作。我在Chrome浏览器中找到了其他个人证书。将其导出到不带私钥X.509且编码为Base-64(CER)的文件中。然后在文本编辑器中打开导出的文件,删除“ ----- BEGIN CERTIFICATE -----”和'---- END CERTIFICATE -----',其余的都放入XML]

我需要通过Java代码(BouncyCastle库?)来重复所有这些。我认为这很容易,但是例子很少。

谢谢。

java certificate key public
1个回答
0
投票

我终于在解决方案上进行了搜索,类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();
}
© www.soinside.com 2019 - 2024. All rights reserved.