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

标签 java certificate key public

我正在从事从某些政府门户网站收集数据的项目。

为了获取有效数据,我必须发出包含一些精确 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/

相关文章:

java - 在Java中检查整个ArrayList

windows - 无法使用 www.google.com NET::ERR_CERT_COMMON_NAME_INVALID SSL 证书无效

json - 如何使用 JQ 简化 JSON 对象?

html - 在网站上使用多种形式输入 key

java - 如何通过代码设置按钮背景图片

java - Jenkins CLI Java API - 指定构建参数

java - 在java中使用多线程添加整数2D数组元素比顺序添加慢

wcf - 客户端证书身份验证 WCF

java - Java 中的 Mqtt 客户端 ssl 示例

python - 比较两个字典并在 python 中打印不相等的值