//装载证书库
FileInputStream in = new FileInputStream(name);
KeyStore ks = KeyStore.getInstance("JKS");//JKS为证书库的类型
ks.load(in,storepass);
//从证书库中读出签发者(CA)的证书
java.security.cert.Certificate cl = ks.getCertificate(alias);
//读出一个CA证书,这里的l是字母l不是数据字1
PrivateKey privateKey = (PrivateKey)ks.getKey(alias,cakeypass);
//根据别名和证书密码读出CA证书的私钥
in.close();
//从证书库中读出的签发者(CA)的证书中提取签发者的信息
byte[] encodl = cl.getEncoded();//提取证书的编码,这里是字母l不是数据字1
X509CertImpl cimpl = new X509CertImpl(encodl);
//这里是字母l不是数据字1,根据证书的编码创建X509CertImpl类型的对象
//根据上面的对象获得X509CertInfo类型的对象,该对象封装了证书的全部内容。
X509CertInfo cinfo_first =
(X509CertInfo)cimpl.get(X509CertImpl.NAME+"."+X509CertImpl.INFO);
//然后获得X500Name类型的签发者信息
X500Name issuer = (X500Name)
cinfo_first.get(X509CertInfo.SUECT+"."+CertificateIssuerName.DN_NAME);
//获取待签发的证书,即获”磺┓⒄叩闹な
//可从密钥库中获取,也可从导出的证书文件中获取,这里给出两种方式////////////////////////////////////////////////////////////////////////
//方式一、采用从导出的cer文件中获取 start
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//end 方式一
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//方式二、从证书库中读出被签的证书 start
///////////////////////////////////////////////////////////////////////////////
java.security.cert.Certificate c3 = ks.getCertificate(aliasName);
//从证书库中读出被签证书,然后生成新的证书
byte[] encod3 = c3.getEncoded();
X509CertImpl cimp3 = new X509CertImpl(encod3);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28146-6.html
对股市指手画家
虽然这次中国有点示弱
希望能有所帮助