问题描述
我有一个包含证书链和私钥的 PKCS12 文件。 我想使用 BouncyCastle 创建一个带有该证书链的 CRT 文件,就像我们可以使用 OpenSSL 命令行工具一样:
openssl pkcs12 -in [yourfilename.pfx] -clcerts -nokeys -out [certificatename.crt]
我已经能够加载 pkcs12 密钥库并获取证书:
Certificate[] certs = pKeyStore.getCertificateChain(pAlias);
但是我找不到可以接受上述证书数组的 CRT 文件的商店构建器...
解决方法
您要查找的类是 bcpkix 中的 org.bouncycastle.openssl.jcajce.JcaPEMWriter
。您可以使用其 write
方法将各种 JCE 接口(X509Certificate
、X509CRL
、PublicKey
、PrivateKey
、KeyPair
)编码为PEM 文件。
就你而言:
final JcaPEMWriter pemWriter = new JcaPEMWriter(System.out);
for (final Certificate cert : certs) {
pemWriter.write(cert);
}