从JAVA中的PKCS#7文件中提取原始证书

Sam*_*sky 2 java openssl cryptography pem pkcs#7

我想实现此openssl命令所执行的功能,但是要在Java中以编程方式实现:

openssl pkcs7 -in toBeExported.p7c -inform DER -out certificate.pem -print_certs 
Run Code Online (Sandbox Code Playgroud)

这意味着我拥有DER格式的公共密钥证书(PKCS#7证书),并且我想将其中包含的原始证书提取到Base64文件中。有没有办法做到这一点?

And*_*rup 5

就像是

FileInputStream is = new FileInputStream( "cert.pkcs7" );
CertificateFactory cf = CertificateFactory.getInstance( "X.509" );
Iterator i = cf.generateCertificates( is ).iterator();
while ( i.hasNext() ) 
{
   Certificate c = (Certificate)i.next();
   // TODO encode c as Base64...
}
Run Code Online (Sandbox Code Playgroud)

应该与PKCS#7编码的证书一起使用。

干杯,

  • 感谢您的帮助!这解决了我的问题。只是一个小小的评论,我使用 X509Certificate 而不是 Certificate 因为我的原始代码有一个解码异常(长度太大) (3认同)