java如何解读证书里的内容(通过string 来生成X509Certificate对象)?
File file = new File("D:\\zyj.crt");
InputStream inStream = new FileInputStream(file);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate oCert = (X509Certificate)cf.generateCertificate(inStream);
info = oCert.getSubjectDN().getName();
System.out.println("证书拥有者:"+info);
但现在的问题的,我的项目得到的不是证书文件,而是一个string。 这个string里的内容和zyj.crt文件里的内容是一样的。内容片断如下:
-----BEGIN CERTIFICATE----- MIICMjCCAZsCCQD3/xw1j77JATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
.....省略
-----END CERTIFICATE-----
我怎么通过这个string 来生成X509Certificate对象 然后读取里面的内容呢? 展开
那个字符串是Base64编码后的
试着把String 转成inputStream,
InputStream inStream = new ByteArrayInputStream(caString.getBytes('UTF-8'));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding
就是把这个String 写到一个文件里,然后用上面的方法读这个文件。
1.我怎么通过这个string 来生成X509Certificate对象
2.笨办法:就是把这个String 写到一个文件里,然后用上面的方法读这个文件。但这样效率太低了。
3.我还试着把String 转成inputStream,InputStream inStream newByteArrayInputStream(caString.getBytes("UTF-8"));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。
4.java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding