J2SDK提供了keytool命令行工具,可以根据指定的参数来创建数字证书。生成的证书或证书库默认保存在命令行当前目录下。
[size=small]1. 创建数字证书[/size]
注:-genkey可以写成-genkeypair
dname的值详解:
CN(Common Name名字与姓氏)
OU(Organization Unit组织单位名称)
O(Organization组织名称)
L(Locality城市或区域名称)
ST(State州或省份名称)
C(Country国家名称)
[size=small]2. 查看证书库中的所有数字证书[/size]
注:如果证书库是非默认storetype,需要明确指定。
[size=small]3. 查看证书详细[/size]
注:如果证书是非默认storetype,需要明确指定。
[size=small]4. 导入证书[/size]
注:
-import可以写成-importcert
-trustcacerts和-v 可以不写,效果一样
[size=small]5. 导出证书[/size]
注:-export可以写成-exportcert
[size=small]6. 删除证书[/size]
注:如果证书是非默认storetype,需要明确指定。
[size=small]7. 生成证书签名申请[/size]
注:将生成的scent.scr文件发给CA机构来申请签名。
[size=small]8. 显示证书[/size]
[size=small]9. 更改证书别名[/size]
[size=small]10. 导入证书库[/size]
注:如果不提供-srcalias, -destalias,则会将源库的所有证书导入到目标库中。
[size=small]11. 修改证书密码[/size]
注:如果不提供-keypass,系统会提示你输入新密码。
[size=small]12. 修改证书库密码[/size]
[size=small]参数详解:[/size]
[color=blue]-dname[/color] [color=violet]"CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"[/color] dn名为"CN=..."
[color=blue]-alias[/color] [color=violet]scent[/color] 别名为scent的一个证书
[color=blue]-keyalg[/color]
[color=violet]DSA RSA[/color] DSA或RSA算法(当使用-genkeypair参数)
[color=violet]DES DESede AES[/color] DES或DESede或AES算法(当使用-genseckey参数)
[color=blue]-keysize[/color]
[color=violet]512[/color] ~ [color=violet]1024[/color] 密钥的长度为512至1024之间(64的倍数)(当使用-genkeypair和-keyalg DSA参数)
> [color=violet]512[/color] 密钥的长度大于512 (当使用-genkeypair和-keyalg RSA参数)
[color=violet]56[/color] 密钥的长度为56 (当使用-genseckey和-keyalg DES 参数)
[color=violet]112 168[/color] 密钥长度为112或168(当使用-genseckey和-keyalg DESede 参数)
[color=violet]128 192 256[/color] 密钥长度为128或192或256 (当使用-genseckey和-keyalg AES 参数)
[color=blue]-keypass[/color] [color=violet]123456[/color] 这个证书的私钥密码为123456
[color=blue]-keystore[/color] [color=violet]prospectlib[/color] 证书库的名称为prospectlib
[color=blue]-storepass[/color] [color=violet]123456[/color] 证书库的访问密码为123456
[color=blue]-validity[/color] [color=violet]900[/color] 证书有效期为900天
[color=blue]-file[/color] [color=violet]scent.cer[/color] 从scent.cer文件导入证书,或者导出证书到scent.cer文件
[color=blue]-v[/color] 显示详细信息
[color=blue]-rfc[/color] 以Base64的编码格式打印证书
[color=blue]-storetype[/color] [color=violet]JCEKS[/color] 密钥库的类型为JCEKS。常用的有JKS(默认),JCEKS(推荐),PKCS12,BKS,UBER。每个密钥库只可以是其中一种类型。
[size=small]1. 创建数字证书[/size]
keytool -genkey -v -alias scent -dname "CN=John,OU=MNG,O=Corp,L=Hangzhou,ST=Zhejiang,C=CN" -keyalg RSA -keysize 2048 -keypass 123456 -keystore prospectlib -storepass 123456 -storetype JCEKS -validity 900
注:-genkey可以写成-genkeypair
dname的值详解:
CN(Common Name名字与姓氏)
OU(Organization Unit组织单位名称)
O(Organization组织名称)
L(Locality城市或区域名称)
ST(State州或省份名称)
C(Country国家名称)
[size=small]2. 查看证书库中的所有数字证书[/size]
keytool -list -rfc -keystore prospectlib -storepass 123456 -storetype JCEKS
注:如果证书库是非默认storetype,需要明确指定。
[size=small]3. 查看证书详细[/size]
keytool -list -v -alias scent -keystore prospectlib -storepass 123456 -storetype JCEKS
注:如果证书是非默认storetype,需要明确指定。
[size=small]4. 导入证书[/size]
keytool -import -v -trustcacerts -alias scent -file scent.cer -keypass 123456 -keystore prospectlib -storepass 123456
注:
-import可以写成-importcert
-trustcacerts和-v 可以不写,效果一样
[size=small]5. 导出证书[/size]
keytool -export -alias scent -file scent.cer -keystore prospectlib -storepass 123456
注:-export可以写成-exportcert
[size=small]6. 删除证书[/size]
keytool -delete -alias scent -keystore prospectlib -storepass 123456 -storetype JCEKS
注:如果证书是非默认storetype,需要明确指定。
[size=small]7. 生成证书签名申请[/size]
keytool -certreq -alias scent -sigalg "MD5withRSA" -file scent.csr -keypass 123456 -keystore cacerts.jks -storepass 123456
注:将生成的scent.scr文件发给CA机构来申请签名。
[size=small]8. 显示证书[/size]
keytool -printcert -v -file scent.cer
[size=small]9. 更改证书别名[/size]
keytool -changealias -v -alias scent -destalias perfume -keystore prospectlib -storepass 123456
[size=small]10. 导入证书库[/size]
keytool -importkeystore -v -srckeystore prospectlib -srcstoretype JKS -srcstorepass 123456 -destkeystore intrinsic -deststoretype JKS -deststorepass 123456 -srcalias terrific prospect -destalias terrific prospect
注:如果不提供-srcalias, -destalias,则会将源库的所有证书导入到目标库中。
[size=small]11. 修改证书密码[/size]
keytool -keypasswd -alias brilliant -keystore range -storepass 123456 -keypass 123456 -new 654321
注:如果不提供-keypass,系统会提示你输入新密码。
[size=small]12. 修改证书库密码[/size]
keytool -storepasswd -v -new 654321 -keystore range -storepass 123456 -storetype JKS
[size=small]参数详解:[/size]
[color=blue]-dname[/color] [color=violet]"CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"[/color] dn名为"CN=..."
[color=blue]-alias[/color] [color=violet]scent[/color] 别名为scent的一个证书
[color=blue]-keyalg[/color]
[color=violet]DSA RSA[/color] DSA或RSA算法(当使用-genkeypair参数)
[color=violet]DES DESede AES[/color] DES或DESede或AES算法(当使用-genseckey参数)
[color=blue]-keysize[/color]
[color=violet]512[/color] ~ [color=violet]1024[/color] 密钥的长度为512至1024之间(64的倍数)(当使用-genkeypair和-keyalg DSA参数)
> [color=violet]512[/color] 密钥的长度大于512 (当使用-genkeypair和-keyalg RSA参数)
[color=violet]56[/color] 密钥的长度为56 (当使用-genseckey和-keyalg DES 参数)
[color=violet]112 168[/color] 密钥长度为112或168(当使用-genseckey和-keyalg DESede 参数)
[color=violet]128 192 256[/color] 密钥长度为128或192或256 (当使用-genseckey和-keyalg AES 参数)
[color=blue]-keypass[/color] [color=violet]123456[/color] 这个证书的私钥密码为123456
[color=blue]-keystore[/color] [color=violet]prospectlib[/color] 证书库的名称为prospectlib
[color=blue]-storepass[/color] [color=violet]123456[/color] 证书库的访问密码为123456
[color=blue]-validity[/color] [color=violet]900[/color] 证书有效期为900天
[color=blue]-file[/color] [color=violet]scent.cer[/color] 从scent.cer文件导入证书,或者导出证书到scent.cer文件
[color=blue]-v[/color] 显示详细信息
[color=blue]-rfc[/color] 以Base64的编码格式打印证书
[color=blue]-storetype[/color] [color=violet]JCEKS[/color] 密钥库的类型为JCEKS。常用的有JKS(默认),JCEKS(推荐),PKCS12,BKS,UBER。每个密钥库只可以是其中一种类型。