Java Keytool命令详解

 

 -certreq            生成证书请求  

 -changealias        更改条目的别名  

 -delete             删除条目  

 -exportcert         导出证书  

 -genkeypair         生成密钥对  

 -genseckey          生成密钥  

 -gencert            根据证书请求生成证书  

 -importcert         导入证书或证书链  

 -importkeystore     从其他密钥库导入一个或所有条目  

 -keypasswd          更改条目的密钥口令  

 -list               列出密钥库中的条目  

 -printcert          打印证书内容  

 -printcertreq       打印证书请求的内容  

 -printcrl           打印 CRL 文件的内容  

 -storepasswd        更改密钥库的存储口令

 -alias                  要处理的条目的别名

 -keyalg                密钥算法名称

 -keysize              密钥位大小

 -sigalg                签名算法名称

 -destalias          目标别名

 -dname                  唯一判别名

 -startdate          证书有效期开始日期/时间

 -ext                    X.509 扩展

 -validity             有效天数

 -keypass                  密钥口令

 -keystore            密钥库名称

 -storepass                密钥库口令

 -storetype          密钥库类型

 -providername    提供方名称

 -providerclass  提供方类名

 -providerarg              提供方参数

 -providerpath        提供方类路径

 -v                              详细输出

 -protected                      通过受保护的机制的口令

 -rfc                            以 RFC 样式输出

这个命令中,有许多命令使用的参数是有默认值的,使用命令时可以不指定的,看看下表:

Option

默认值

-alias

“mykey”

-keyalg

“DSA” 使用-genkeypair命令时

“DES” 使用-genseckey命令时

-keysize

2048  使用 –genkeypair命令,并且-keyalg选项是”RSA”时

1024  使用 –genkeypair命令,并且-keyalg选项是”DSA”时

256   使用 –genkeypair命令,并且-keyalg选项是”EC”时

56    使用 –genseckey 命令,并且-keyalg选项是”DES”时

168   使用 –genseckey 命令,并且-keyalg选项是”DESede”时

-validity

90

-keystore

默认的的文件名是 .keystore ,是一个隐藏文件

-storetype

默认值java.security中配置的,SUN指定的是JKS,可以人为修改

-file

如果是写,值为stout,如果是读,值为stdin

-protected

false

-sigalg

SHA1withDSA   如果生成KeyPair使用的时DSA算法

SHA256withRSA 如果生成KeyPair使用的时RSA算法

SHA256withECDSA 如果生成KeyPair使用的时EC算法

 

注:

1. PKCS12不支持keypass,会忽略这个参数的值

2. 密钥库导入证书只支持X.509格式,通常导入证书格式为.cer

3. 证书请求格式为.csr

4. PKCS12后缀常命名为.p12,JKS后缀常命名为.keystore或.jks

5. CA根证书都是自签名的

6. Tomcat配置时需要storepass和keypass一致(大概和PKCS12不支持keypass也有一定联系吧)

7. 生成服务端密钥库,提示输入姓名时需要输入服务器的网址或者IP地址,同时网址可以使用通配符*(目前只发现了这个),如*.sy.com

8. keytool默认DER编码格式,-rfc则是PEM编码格式

9. 更多内容请使用keytool -help查看

例子:

创建一个简单的密钥库,名字为asd

keytool -genkeypair -keystore asd.jks

创建一个简单的密钥库,名字为asd,别名为dsa

keytool -genkeypair -keystore asd.jks -alias dsa

创建一个简单的密钥库,名字为asd,别名为dsa,密钥库格式为PKCS12

keytool -genkeypair -storetype pkcs12 -keystore asd.p12 -alias dsa

导出证书

keytool -exportcert -file asd.cer -keystore asd.p12 -alias dsa

 

导出PEM证书

keytool -exportcert -rfc -file asd.crt -keystore asd.p12 -alias dsa

生成证书请求

 

keytool -certreq -keystore asd.p12 -alias dsa -file asd.csr

使用另一个密钥库添加对此证书请求的信任

 

keytool -gencert -infile asd.csr -outfile asd.cer -keystore root.p12 -alias rootkey

导入信任证书

keytool -importcert -file asd.cer -keystore 另一个密钥库.p12 -alias 别名

你可能感兴趣的:(Https,Java,Keytool命令)