//把新证书存入证书库
//把新生成的证书存入一个新的证书库,也可以存入原证书库,
//存入新证书库,则新证书库中不仅包含原证书库中的所有条目,
//而且新增加了一个这次产生的条目。注意,这时,新产生的签名后的证书只
//包括公钥和主体信息及签名信息,不包括私钥信息。这里给出两种方式。
///////////////////////////////////////////////////////////////////////////
//方式一:存入新密钥库
///////////////////////////////////////////////////////////////////////////
/*
ks.setCertificateEntry(afteraliasName,newcert);
FileOutputStream out = new FileOutputStream(newLib);
//存入新库signedLib,并设置新库的库访问密码
ks.store(out,newLibPass);
out.close();
*/
///////////////////////////////////////////////////////////////////////////
//end方式一
///////////////////////////////////////////////////////////////////////////
//也可以采用另外一种方式,存入原证书库中
//存入原库中,即在原证书库中增加一条证书,这个证书是原证书经过签名后的证书
//这个新证书含有私钥和私钥密码
///////////////////////////////////////////////////////////////////////////
//方式二,存入原密钥库
///////////////////////////////////////////////////////////////////////////
//先在原库中读出被签证书的私钥
PrivateKey prk = (PrivateKey)ks.getKey(aliasName,namePass);
java.security.cert.Certificate[] cchain = {newcert};
//存入原来的库,第二个参数为原证书的私钥,第三个参数为新证书的私钥密码,第三个参数为新证书
ks.setKeyEntry(afteraliasName,prk,afterNewPass,cchain);//用新密钥替代原来的没有签名的证书的密码
FileOutputStream out2 =new FileOutputStream(name);
ks.store(out2,storepass);//存入原来的库中,第二个参数为该库的访问密码
///////////////////////////////////////////////////////////////////////////
//end方式二
///////////////////////////////////////////////////////////////////////////
}
}
运行以上程序,即可运用 MissionCA证书来签发abnerCA证书,运行后在abnerCALib中增加一条别名为abnerCA_Signed的数字证书,我们将它导出为cer文件(导出方法见前)。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27683-8.html
千千
人家是一个国家凭什么不能有武装