keytool生成keystore、truststore、证书
1. 打开cmd命令行,进入文件夹(如:D:\test_icessl_key)。keytool会把接下来生成的所有文件都保存到此处。
2. 输入:keytool -genkeypair -alias icesslkey -keyalg RSA -validity 3650 -keystore icekeystore.jks
这条命令会在生成keystore后接着生成一个密钥对儿。RSA是非对称密钥算法,也可以改为keytool支持的其他密钥算法,3650代表的是证书的有效期,可以自己指定,icekeystore.jks是keystroe的名称,也可以自己指定。
会提示输入keystore的密码,接着会提示输入名字等信息,如下图:
补充:输入<icesslkey>的主密码,是指生成服务端证书的私钥。服务端私钥如果和keystore的相同的话,直接按回车。建议直接按回车,即服务端私钥和keystore的密码相同。
3. 验证生成的keystore文件:keytool -list -v -keystore icekeystore.jks
会显示出以下信息,如图:
4. 导出公钥证书
下面的命令可以导出自签公钥证书:
keytool -export -alias icesslkey -keystore icekeystore.jks -rfc -file icecert.cer
其中icecert.cer是导出证书的名称,可以随便起个名字,icekeystore.jks是2中生成的keystore 文件。
执行上面的命令会要求输入icekeystore的密码,会显示以下信息,如下图。
5. truststore的生成以及公钥证书的导入
把4生成的公钥证书icecert.cer导入到truststore中
keytool -import -alias icesslkey -file icecert.cer -keystore icetruststore.jks
icecert.cer是4导出的公钥证书,icetruststore.jks可以随便起,是生成的truststore的文件名。这条命令首先会生成一个truststore,然后导入4生成的公钥证书icecert.cer。
执行keytool -import -alias icesslkey -file icecert.cer -keystore icetruststore.jks后,首先会提示输入truststore的密码,如下图:
6. 验证5生成的truststore文件
keytool -list -v -keystore icetruststore.jks
icetruststore.jks是5生成的truststore文件名。