jdk keytool工具命令详解

最近弄了一个http项目改造https项目,ssl证书主要利用keytool生成。记录一下keytool命令详解。

-genkey  在用户主目录中创建一个默认文件 “.keystore",还会产生一个mykey的别名,mykey中包含用户的公钥/私钥和证书

(如果没有指定keystroe存储位置,会存在用户默认目录,一般在C盘某个位置,通常操作会指定存储路劲,便于查找)

-alias 别名 缺省值 mykey

-keystore 指定密钥库的名称

-keyalg 指定密钥的算法(RSA DSA,默认采用DSA)

-validity 指定证书的有效期 单位天,默认三个月 90

-keysize 指定密钥长度 缺省值 1024

-storepass 指定密钥库的密码(获取keystore信息所需的密码)

-keypass 指定别名条目的密码(私钥的密码,一般设定与storepass一致)

-dname 指定证书拥有着信息

-list 显示密钥库中的证书信息  例如:keytool -list -v -keystore 指定keysore -storepass密码

-v 显示密钥库中的证书详细信息

- export 将别名指定的证书导出到文件  keytool -export -alias 需要到处的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称,-storepass密码

-file 参数指定导出到文件的文件名和路径

-delete 删除密钥库中某条目  keytool -delete -alias 指定删除的别名 -keystore 指定keystore -storepass 密码

-printcert 查看导出的证书信息 ke'y'tool -printcert -file xxx.crt

-keypasswd 修改密钥库中指定条目密码 ke'y'tool -keypasswd -alias 别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore 

-storepasswd 修改keystore密码 keytool -storepasswd -keystore xxx.keystore -storepass 旧密码 -new新密码

-import 将已签名数字证书导入密钥库 keytool -import -alias 别名 -keystore 指定keystore -file 需要导入的证书

另外

1. keystore生成:

a.分阶段生成

keytool -genkey -alias 别名 -keypass 别名密码 -keyalg RSA算法 -keysize 1024(密钥长度) -validity 365(有效期) -keystore d:/xxx.keystore(指定生成证书的位置和证书名称) -storepass 123456(获取keystore信息的密码)

 b.一次性生成

keytool -genkey -alias xxxx -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore d:/xxx/xxx.keystore -storepass123456 -dname "CN=(名字,一般是域名),OU=(组织单位名称),O=(组织名称),L=城市,ST=省份,C=国家”中英文都可以

2.查看keystore信息

 keytool -list -v -keystore d:/xxx.keystore -storepass 123456

3.证书导出

keytool -export alias xxx -keystore d:/xxx.keystore -file d:/xxxcert.crt -storepass 123456 这种证书是DER编码的 

加上-rfc也可以导出PEM格式的证书

keytool -export alias xxx -keystore d:/xxx.keystore -rfc -file d:/xxxcert.crt -storepass 123456

4.查看导出证书信息

keytool -printcert -file d:/xxxxcert.crt

5.证书的导入

keytool -import -alias (指定导入证书的别名,如果不指定默认mykey,别名不唯一会出错),-file d:/xxx.crt -keystore e:/xxx.keystore -storepass 123456

另外 jdk证书库导入信任的证书有时会用到

keytool -import  -v -trustcacerts -alias ssss -file d:/xxx.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit(默认密码)

6.证书条目的删除

keytool -delete -alias xxxx -keystore d:/xxx.keystore -storepass 123456

7.证书条目口令修改

keytool -keypasswd -alias xxx -keypass 原密码 -new 新密码 -keystore d:/xxx.keystore -storepass 123456

8.修改keystore密码

keytool -storepasswd -keystore d:/xxx.keystore -storepass 123456 -new 新密码

9.修改keystore别名信息

keytool -selfcert -alias -keypass 123456 -keystore d:/xxx.keystore -storepass 123456 -dname "cn=xxx,ou=,o=,c=..."

猜你喜欢

转载自blog.csdn.net/qq_39527230/article/details/80731459