我正在从事从某些政府门户网站收集数据的项目。
为了获取有效数据,我必须发出包含一些精确 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();
}
关于Java,从证书导出公钥(X.509、Base64 .cer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60655242/