在Java中将证书字节[]转换为X509Certificate
我已将证书作为Base64编码字符串存储在数据库中。我可以从数据库中读取并解码它,但我想将解码的字节[]转换为X509证书。我正在寻找这样做的示例代码。我试过:在Java中将证书字节[]转换为X509Certificate,java,x509certificate,Java,X509certificate,我已将证书作为Base64编码字符串存储在数据库中。我可以从数据库中读取并解码它,但我想将解码的字节[]转换为X509证书。我正在寻找这样做的示例代码。我试过: CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); InputStream in = new ByteArrayInputStream(bytes); X509Certificate cert = (X509Certificate)certF
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
这会导致编码类型出现问题。表示证书的有效示例字符串或字节[]将是良好的
任何指针都会很棒!谢谢。您的示例代码看起来不错。您可以使用openssl自己生成
字节[]
:
openssl genrsa -out privkey.pem
openssl req -new -x509 -key privkey.pem -outform DER -out cert.der
-1:OP说,“在Java中”我回答了他关于Java的问题。看起来不错。我在回答问题的第二部分,他要求提供示例:使用外部工具openssl生成这些示例。你的答案是否回答了这个问题(我自己也不确定问题是什么!)?您的openssl示例在哪些方面与OP问题相关?看,他有一个字节数组不能与该代码一起工作。要么他的Java代码错误,要么输入错误(不是证书?不同的编码?直到看到输入或错误消息,我们才知道)。我声称他的代码不是问题所在,我用一些示例对其进行了测试,并授权他生成用于测试的示例输入。您需要在答案中添加最后一条注释。您提到的“编码类型问题”是什么?这是数据库问题还是Java问题?我想您需要的是。getEncoded()方法将返回一个字节[]。您是如何获得字节数组的?编码类型到底有什么问题?这几行代码中的哪一行会引发异常?例外情况是什么?这个问题需要关闭,而不是转到主页。OP已经有五年没有回应过关于它的询问了。