- 打开cmd命令行,进入文件夹(如:D:\test_icessl_key)。keytool会把接下来生成的所有文件都保存到此处。
- keystore以及服务器密钥对儿的生成,输入:
keytool -genkeypair -keyalg RSA -dname "cn=huangmin,ou=exc,o=智能研究院,l=深圳,st=广东,c=CN" -alias icesslkey -validity 365 -keystore exckeystore.jks -storepass exc-ledznyjy20190710 -keypass exc-ledznyjy20190710
-keystore 后面是要生成的文件的名称 icekeystore.jks
-keypass mypassword 此处”mypassword “为本条目的密码(私钥的密码)。最好与storepass一致。
-storepass mypassword 此处”mypassword “为证书库密码(私钥的密码)。最好与keypass 一致。
这里是生成ftp服务器所需要的keystore文件的命令
这条命令会在生成keystore后接着生成一个密钥对儿。RSA是非对称密钥算法,也可以改为keytool支持的其他密钥算法,365代表的是证书的有效期,可以自己指定,icekeystore.jks是keystroe的名称,也可以自己指定。
补充:输入的主密码,是指生成服务端证书的私钥。服务端私钥如果和keystore的相同的话,直接按回车。建议直接按回车,即服务端私钥和keystore的密码相同。
3.导出公钥证书
下面的命令可以导出自签公钥证书:
keytool -export -alias icesslkey -keystore icekeystore.jks -rfc -file icecert.cer -storepass 834834
其中icecert.cer是导出证书的名称,可以随便起个名字,icekeystore.jks是2中生成的keystore 文件。
执行上面的命令会要求输入icekeystore的密码,会显示以下信息,如下图。
- truststore的生成以及公钥证书的导入
把4生成的公钥证书icecert.cer导入到truststore中
keytool -import -alias icesslkey -file icecert.cer -keystore icetruststore.jks -storepass 834834 -keypass 834834
icecert.cer是4导出的公钥证书,icetruststore.jks可以随便起,是生成的truststore的文件名。这条命令首先会生成一个truststore,然后导入4生成的公钥证书icecert.cer。
执行keytool -import -alias icesslkey -file icecert.cer -keystore icetruststore.jks后,首先会提示输入truststore的密码,如下图:
- 验证5生成的truststore文件
keytool -list -v -keystore icetruststore.jks
icetruststore.jks是5生成的truststore文件名。
JDK中ketyTool常用命令:
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书,(默认情况下,keystore会存在用户系统默认目录,如:win系统,会生成在C:\Documents and Settings\用户名\文件名为“.keystore”)
-alias 产生别名(default:mykey,每个keystore都关联这一个独一无二的alias,不区分大小写)
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg 指定密钥的算法 (如RSA、DSA,default:DSA)
-validity 指定创建的证书有效期多少天(default:90)
-keysize 指定密钥长度(default:1024,范围:512 ~ 1024)
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keypass 指定别名条目的密码(私钥的密码)
-dname 指定证书拥有者信息
例如: "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"
-list 显示密钥库中的证书信息
keytool -list -v -keystore 指定keystore -storepass 密码 -v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件
keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
-delete 删除密钥库中某条目
keytool -delete -alias 指定需删除的keystore别名 -keystore 指定keystore -storepass 密码
-printcert 查看导出的证书信息
keytool -printcert -file yushan.crt
-keypasswd 修改密钥库中指定条目口令
keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore sage
-storepasswd 修改keystore口令
keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)
-import 将已签名数字证书导入密钥库
keytool -import -alias 别名 -keystore指定keystore -file需导入的证书
参考博客:
https://blog.csdn.net/luoyongsir/article/details/54929288