如何在java中将字节[]类型转换为证书类型?
我有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);
但出现错误Certificate=cf.generateCertificate(bais)在这条线上
错误:java。安全cert.CertificateParsingException:java。伊奥。IOException:ObjectIdentifier()--数据不是对象ID(tag=49)
为什么会发生这个错误?这个代码怎么了?请解释一下。谢谢
# 1 楼答案
可以使用^{} 生成证书
下面是一个生成X509证书的示例:
# 2 楼答案
当我尝试使用CertificateFactory时,我也犯了同样的错误。生成企业社会责任证书。 所以我认为你的问题也可能是一样的;i、 e.字节数组不包含证书,但包含证书签名请求。 如果您真的需要阅读证书签名请求(就像我一样),请使用以下代码(受http://www.journaldev.com/223/generating-a-certificate-signing-request-using-java-api启发):
使用Base64Utils取决于输入数据的格式