我有一个证书数据的byte[]
,我想将此byte[]
类型更改为Certificate
类型。我该如何实现?
现在,我使用了CertificateFactory.generateCertificate(InputStream inStream)
。
byte[] csr = getCSR(cn, ou, org, loc, state, country,email);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
ByteArrayInputStream bais = new ByteArrayInputStream(csr);
Certificate certificate = cf.generateCertificate(bais);
但是发生了错误证书证书= cf.generateCertificate(bais); 在这一行。
错误: java.security.cert.CertificateParsingException:java.io.IOException:ObjectIdentifier()-数据不是对象ID(标记= 49)
为什么会发生此错误?这段代码有什么问题?请给我解释一下。谢谢。
最佳答案
您可以使用 CertificateFactory.generateCertificate(InputStream inStream)
生成证书。
这是生成X509证书的示例:
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate certificate = cf.generateCertificate(new ByteArrayInputStream(buf));