写点什么

keytool 生成 keystore、truststore、证书

用户头像
黄敏
关注
发布于: 刚刚
  1. 打开 cmd 命令行,进入文件夹(如:D:\test_icessl_key)。keytool 会把接下来生成的所有文件都保存到此处。

  2. 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 的名称,也可以自己指定。

补充:输入<icesslkey>的主密码,是指生成服务端证书的私钥。服务端私钥如果和 keystore 的相同的话,直接按回车。建议直接按回车,即服务端私钥和 keystore 的密码相同。

3.导出公钥证书

下面的命令可以导出自签公钥证书:

keytool -export -alias icesslkey -keystore icekeystore.jks -rfc -file icecert.cer -storepass 834834
复制代码

其中 icecert.cer 是导出证书的名称,可以随便起个名字,icekeystore.jks 是 2 中生成的 keystore 文件。

执行上面的命令会要求输入 icekeystore 的密码,会显示以下信息,如下图。

  1. 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 的密码,如下图:

  1. 验证 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


https://blog.csdn.net/xiaohai0504/article/details/7598178


https://www.cnblogs.com/f1194361820/p/4266511.html

用户头像

黄敏

关注

还未添加个人签名 2019.11.30 加入

还未添加个人简介

评论

发布
暂无评论
keytool生成keystore、truststore、证书