申请证书就需要产生证书请求,生成PKCS#10的证书请求就需要准备
1. 选择秘钥对的生成厂商(一般有BC的包,或者密码卡提供商提供的集成包)
2. 产生秘钥对
3. 构建DN
4.生成P10
5. 分别存储公私钥,文件名以DN的hash作为唯一值,后缀以.key 和. keypub结尾
X500Principal subject = new X500Principal(dn);
JcaPKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(subject, myKeyPair.getPublic());
ContentSigner signer = new JcaContentSignerBuilder("SHA1WithRSA").setProvider("BC").build(myKeyPair.getPrivate());
PKCS10CertificationRequest csr = builder.build(signer);
byte[] csrbuf=csr.getEncoded();
P10Str= new String(Base64.encode(csrbuf));
SM2和RSA申请P10的流程大体相同,都是需要用私钥对请求内容进行一次签名,然后在结构里放入签名后内容和公钥,就成了p10
P10是申请证书的必备参数
P10申请到手,就可以拿着P10去申请证书了