//方式二、从证书库中读出被签的证书 start
///////////////////////////////////////////////////////////////////////////////
java.security.cert.Certificate c3 = ks.getCertificate(aliasName);
//从证书库中读出被签证书,然后生成新的证书
byte[] encod3 = c3.getEncoded();
X509CertImpl cimp3 =newX509CertImpl(encod3);
X509CertInfo cinfo_second =
(X509CertInfo)cimp3.get(X509CertImpl.NAME"."X509CertImpl.INFO);///////////////////////////////////////////////////////////////////////////
//end方式二
/////////////////////////////////////////////////////////////////////////// //设置新证书的有效期,使之为当前向后n年有效,新证书的
//截止日期不能超过CA证书的有效日期
Date beginDate =new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(beginDate);
cal.add(cal.YEAR,n);
Date endDate = cal.getTime();
CertificateValidity cv =newCertificateValidity(beginDate,endDate);
cinfo_second.set(X509CertInfo.VALIDITY,cv);
//设置新证书的序列号
CertificateSerialNumber csn =newCertificateSerialNumber(sn);
cinfo_second.set(X509CertInfo.SERIAL_NUMBER,csn);
//设置新证书的签发者
cinfo_second.set(X509CertInfo.ISSUER"."CertificateIssuerName.DN_NAME,issuer);
//新的签发者是CA的证书中读出来的
//设置新证书的算法,指定CA签名该证书所使用的算法为md5WithRSA
AlgorithmId algorithm =newAlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);
cinfo_second.set(CertificateAlgorithmId.NAME"."
CertificateAlgorithmId.ALGORITHM,algorithm);
//创建新的签名后的证书
X509CertImpl newcert =newX509CertImpl(cinfo_second);
//签名,使用CA证书的私钥进行签名,签名使用的算法为MD5WithRSA
newcert.sign(privateKey,"MD5WithRSA");//这样便得到了经过CA签名后的证书
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27683-7.html
现在的腌肉都是用化学物质腌制的
包括广东
这文章也真是醉了
真是的