Java生成SM2证书基于BouncyCastle(cer)


声明:本文转载自https://my.oschina.net/xshuai/blog/1614080,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

Java生成SM2证书基于BouncyCastle(cer)

可以先加QQ 783021975 咨询相关问题。代码后续会更新一部分

整理中。完全是Java代码调用BouncCastle生成的哦。先来个图看下 签名算法  和  公钥参数都是 符合SM2算法的

可以先加QQ 783021975 咨询相关问题。

2017年8月17日10:37:14 增加生成cer证书代码

       /**      * 国密证书签名算法标识      */     private static String  SignAlgor = "1.2.156.10197.1.501";         /** 	 * 生成国密ROOT证书方法 	 * @param pageCert.getCn()+","+ 	 * @throws Exception 	 */ 	public static void genSM2CertByRoot() throws Exception { 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 		org.bouncycastle.jce.provider.BouncyCastleProvider bouncyCastleProvider = new org.bouncycastle.jce.provider.BouncyCastleProvider(); 		Security.addProvider(bouncyCastleProvider); 		//证书的名称                 String fileName = "root"+new Date().getTime()/1000; 		String path  = "保存的路径"; 		String rootCertPath = path+fileName+".cer"; 		try { 			KeyPair kp = KeyGenUtil.getKeyPair2SM2(path,fileName);//这块就是生成SM2公私钥对  https://zb.oschina.net/service/70e3fdaf699a724b 			System.out.println("=====公钥算法====="+kp.getPublic().getAlgorithm()); 			BCECPrivateKey bcecPrivateKey = (BCECPrivateKey) kp.getPrivate();//使用ECPrivateKey  PrivateKey都可以 			BCECPublicKey bcecPublicKey = (BCECPublicKey) kp.getPublic();//使用ECPublicKey  PublicKey都可以 			//申请服务器证书信息  我是通过网页得到传递的参数 。如果测试 写死即可。这一步没有什么的。 			X500Principal principal = new X500Principal("CN=小帅丶博客,O=小帅丶博客"); 			//X500Principal principal = new X500Principal("CN="+pageCert.getCn()+",O="+pageCert.getO()); 			X509V3CertificateGenerator certGen = new X509V3CertificateGenerator(); 			certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis())); 			certGen.setIssuerDN(principal);certGen.setNotBefore(new Date()); 			certGen.setNotAfter(CertAuthAssist.getYearLater(5)); 			certGen.setSubjectDN(principal); 			certGen.setSignatureAlgorithm(SignAlgor); 			certGen.setPublicKey(bcecPublicKey); 			X509Certificate rootCert = certGen.generateX509Certificate(bcecPrivateKey, "BC"); 			FileOutputStream outputStream = new FileOutputStream(rootCertPath); 			outputStream.write(rootCert.getEncoded());outputStream.close(); 			} catch (Exception e) { 				logger.info("======根证书申请失败"+e.getMessage());return null; 		} }

https://zb.oschina.net/service/70e3fdaf699a724b 购买链接。自愿购买

 

本项目支持  

1.生成RSA算法cer证书

2.SM2算法cer证书。

3.生成根证书。子证书。三级证书

4.字符串公私钥转 公私钥对象 支持SM2算法

 

需要用到的BC包

    <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on -->                <dependency>                   <groupId>org.bouncycastle</groupId>                   <artifactId>bcpkix-jdk15on</artifactId>                   <version>1.57</version>               </dependency>                <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcmail-jdk16 -->               <dependency>                   <groupId>org.bouncycastle</groupId>                   <artifactId>bcmail-jdk15on</artifactId>                   <version>1.56</version>               </dependency>  

 

本文发表于2018年01月29日 08:38
(c)注:本文转载自https://my.oschina.net/xshuai/blog/1614080,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 3129 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1