Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
(1.)首先我们生成密钥文件(证书):
keytool -genkey -alias tomcat -keypass tomcat -keystore d:\privatestore.jks -storepass 123456 -keyalg RSA
(2.)对密钥文件自签名:
keytool -selfcert -alias tomcat -keypass tomcat -keystore d:\privatestore.jks -storepass 123456
(3.)从签名后的私有密钥文件中导出公有密钥:
keytool -export -alias tomcat -keypass tomcat -file d:\key.rsa -keystore d:\privatestore.jks -storepass 123456
(4.)将公有密钥导入一个公有密钥文件:
keytool -import -alias tomcat -file d:\key.rsa -keystore d:\publicstore.jks -storepass 654321
(5.)将[keystore]导入java信任证书库:
keytool -import -trustcacerts -alias tomcat_pso -file d:\publickey.rsa -keypass tomcat -keystore “%JAVA_HOME%/jre/lib/security/cacerts”
注:%JAVA_HOME%/jre/lib/security/cacerts为java自带的证书库,默认密码为changeit
8,通过证书文件查看证书信息
keytool -printcert -file myCA.cer
9,密钥库中证书条目口令的修改
Keytool -keypasswd -alias myCA -keypass 654321 -new newpass -storepass 123456 -keystore myCALib
10,删除密钥库中的证书条目
keytool -delete -alias myCA -keystore myCALib
11,把一个证书文件导入到指定的密钥库
keytool -import -alias myCA -file myCA.cer -keystore truststore
(如果没有名为truststore的keystore,将自动创建,将会提示输入keystore的密码)
12,更改密钥库的密码
keytool -storepasswd -new 123456 -storepass 789012 -keystore truststore
其中-storepass指定原密码,-new指定新密码。
本人博客已搬家,新地址为:http://yidao620c.github.io/