java解析p7b格式证书
从网上百度了好多,发现没有一个合适的,就自己写了一下,分享出来了。
我这个p7b格式证书里面包含了证书和一个根证书,我需要将证书解析出来然后返回base64。
主要代码
public String getCertificates(String certInfo,String number) throws Exception
{
CMSSignedData sd = new CMSSignedData(Base64.decodeBase64(certInfo));
Store<X509CertificateHolder> store = sd.getCertificates();
Collection<X509CertificateHolder> certificates = store.getMatches(null);
for (X509CertificateHolder x509:certificates) {
X509Certificate bc = new JcaX509CertificateConverter().setProvider("BC")
.getCertificate(x509);
BigInteger serialNumber = bc.getSerialNumber();
logger.info(serialNumber+"============="+number);
if(serialNumber.toString().equals(number)){
String encode = new BASE64Encoder().encode(bc.getEncoded());
logger.info("返回证书数据《《《"+encode);
return encode;
}
}
return null;
}