keytool - 密钥和证书管理工具(一)
2013-12-28 18:29
429 查看
keytool - 密钥和证书管理工具
管理密钥存储库、X.509证书链和可信证书。
在Java SE 6中,Keytool命令接口已经有所改变,更多的细节描述查看Changes 章节,以前定义的命令任然被支持。
keytool 使用户可以去管理他们的安全密钥,这些安全密钥用于对称加密/解密(如DES)。
keytool 存储密钥和证书在密钥库中。
· 所有的命令和选项名前加一个减号( - )。
· 可以以任何顺序提供给每个命令的选项。
· 在大括号或者在方括号里的非斜体项,都必须原样显示。
· 括号包围的选项,表示该选项有默认值,如果在命令行中没有指定选项的值,这个默认值将被使用。-V ,-RFC,和-J选项周围也有括号,这些选项只有出现在命令行中才有意义(也就是说他们没有任何“默认”值)。
· 一个方括号包围起来的选项,如果这个选项没有出现在命令中,表示keytool会提示用户输入一个值,(比如-keypass的选项,如果你不在命令行中指定这个选项,keytool将首先尝试使用密钥库的密码恢复私有/机密密钥,如果失败,就会提示您输入私钥/秘密密钥的密码。)
· 斜体字(选项值)代表必须提供实际值。例如,这是一个-printcert命令的格式,
keytool -printcert {-file cert_file} {-v}当指定-printcert命令,替换 cert_file中的实际文件名,如:keytool -printcert -file VScert.cer
· 如果选项值中包含空白(空格),选项值必须加引号。
· 该-help命令是默认的。因此,命令行keytool相当于keytool -help
-alias "mykey"
-keyalg
"DSA" (当使用-genkeypair)
"DES" (当使用-genseckey)
-keysize
1024 (当使用 -genkeypair)
56 (当使用 -genseckey 和 -keyalg 的值是 "DES")
168 (当使用 -genseckey 和 -keyalg 的值是 "DESede")
-validity 90
-keystore 在用户的工作目录下,文件名为.keystore
-storetype "keystore.type"属性的值在一个安全属性文件中,可以通过java.security.KeyStore中的静态方法getDefaultType获取。
-file 默认值取决于标准输入流和标准输出流。
-protected false。
在生成公钥/私钥对时,签名算法(-sigalg选项)是根据所涉及私钥的算法推导:如果所涉及的私钥的类型是“DSA”时,-sigalg选项默认为“SHA1withDSA”,如果所涉及的私钥是“RSA”类型,-sigalg 默认为“MD5withRSA”。请参考 Java加密体系结构API规范与参考中-keyalg和-sigalg的完整列表。
-Jjavaoption 也可以搭配任意一个命令,如果使用了-Jjavaoption选项,指定的javaoption 字符串将被直接传递给java解释器,这个选项不应该包含任何空格,这对于调试执行环境和内存使用量很有用,在命令行中输入java -h 或者java -X查看更多的解释器选型。
下面的这些选项也可以出现在所有的命令中:
-storetype storetype 这个限定词指定了密钥库的类型。
-keystore keystore 指定密钥库的位置。
如果密钥库的类型(storetype)指定为JKS,并且指定的密钥库文件不存在,keytool命令会创建一个新的密钥库文件,比如,如果keytool -genkeypair命令被调用,并且-keystore选项没有指定,如果.keystore文件在用户的工作目录下不存在,那么默认的密钥库文件将被创建并命名为.keystore在用户的工作目录下, 如果-keystore ks_file 选项被指定,但是ks_file 文件不存在,.keystore文件也会被创建。
注意:-keystore选项指定的输入流将被传入到KeyStore.load方法。如果URL被指定为NONE ,一个空的流将被传入到 KeyStore.load方法。如果KeyStore不是一个文件,NONE 应该被指定,
-storepass storepass 这个密码将被用于保护密钥库文件的完成性。
storepass 至少是6个字符长度,storepass 必须被提供,才能访问密钥库的内容。如果 -storepass 选项在命令行中没有被提供,系统会提示用户。
当从密钥库中检索信息时,该密码是可选的,如果没有密码,系统不会检查检索信息的完整性,并显示一条警告。
-providerName provider_name 指定加密服务提供者的名称,这些服务提供者记录在安全属性文件中。
-providerClass provider_class_name 当加密服务提供者没有被记录在安全属性文件中时,该选项指定加密服务提供者的主类文件。
-providerArg provider_arg 和 -providerClass 选项配合使用,作为provider_class_name 构造函数的参数。
-protected 无论是true或false。如果密码必须通过一个受保护的认证路径,此值应指定为true,如专用的PIN码阅读器。
原文http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
管理密钥存储库、X.509证书链和可信证书。
1 概要
keytool [ commands ]在Java SE 6中,Keytool命令接口已经有所改变,更多的细节描述查看Changes 章节,以前定义的命令任然被支持。
2 描述
keytool 是一个证书和密钥的管理工具,它允许用户管理他们的公钥/私钥对和关联的证书,密钥对和证书用于身份认证、数据完成性检查和使用数字证书认证服务,它还允许用户缓存与其通信的另一方的公钥(以证书形式)。证书是来自一个实体(个人,公司等)的数字签名,一些其他实体证书中的公钥(和一些其他信息)有一个特定的值,实体证书中的公钥是一个特殊的值,当数据被数字签名之后,签名信息可以用于检查数据的完整性和用于身份认证,完整性意味着数据没有被修改过,身份认证意味着数据确实来自于某个人(这个人声称创建了这个数据并对这个数据进行了签名),keytool 使用户可以去管理他们的安全密钥,这些安全密钥用于对称加密/解密(如DES)。
keytool 存储密钥和证书在密钥库中。
3 命令和选项注意事项
各种命令及其选项被列出并描述如下。注意:· 所有的命令和选项名前加一个减号( - )。
· 可以以任何顺序提供给每个命令的选项。
· 在大括号或者在方括号里的非斜体项,都必须原样显示。
· 括号包围的选项,表示该选项有默认值,如果在命令行中没有指定选项的值,这个默认值将被使用。-V ,-RFC,和-J选项周围也有括号,这些选项只有出现在命令行中才有意义(也就是说他们没有任何“默认”值)。
· 一个方括号包围起来的选项,如果这个选项没有出现在命令中,表示keytool会提示用户输入一个值,(比如-keypass的选项,如果你不在命令行中指定这个选项,keytool将首先尝试使用密钥库的密码恢复私有/机密密钥,如果失败,就会提示您输入私钥/秘密密钥的密码。)
· 斜体字(选项值)代表必须提供实际值。例如,这是一个-printcert命令的格式,
keytool -printcert {-file cert_file} {-v}当指定-printcert命令,替换 cert_file中的实际文件名,如:keytool -printcert -file VScert.cer
· 如果选项值中包含空白(空格),选项值必须加引号。
· 该-help命令是默认的。因此,命令行keytool相当于keytool -help
3.1. 选项默认值
下面是各种选项的默认设置值。-alias "mykey"
-keyalg
"DSA" (当使用-genkeypair)
"DES" (当使用-genseckey)
-keysize
1024 (当使用 -genkeypair)
56 (当使用 -genseckey 和 -keyalg 的值是 "DES")
168 (当使用 -genseckey 和 -keyalg 的值是 "DESede")
-validity 90
-keystore 在用户的工作目录下,文件名为.keystore
-storetype "keystore.type"属性的值在一个安全属性文件中,可以通过java.security.KeyStore中的静态方法getDefaultType获取。
-file 默认值取决于标准输入流和标准输出流。
-protected false。
在生成公钥/私钥对时,签名算法(-sigalg选项)是根据所涉及私钥的算法推导:如果所涉及的私钥的类型是“DSA”时,-sigalg选项默认为“SHA1withDSA”,如果所涉及的私钥是“RSA”类型,-sigalg 默认为“MD5withRSA”。请参考 Java加密体系结构API规范与参考中-keyalg和-sigalg的完整列表。
3.2. 通用选项
-v选型可以搭配所有的命令,除了-help,如果使用了-v选项,就意味着使用了“verbose”模式,这种模式有更多的信息将输出。-Jjavaoption 也可以搭配任意一个命令,如果使用了-Jjavaoption选项,指定的javaoption 字符串将被直接传递给java解释器,这个选项不应该包含任何空格,这对于调试执行环境和内存使用量很有用,在命令行中输入java -h 或者java -X查看更多的解释器选型。
下面的这些选项也可以出现在所有的命令中:
-storetype storetype 这个限定词指定了密钥库的类型。
-keystore keystore 指定密钥库的位置。
如果密钥库的类型(storetype)指定为JKS,并且指定的密钥库文件不存在,keytool命令会创建一个新的密钥库文件,比如,如果keytool -genkeypair命令被调用,并且-keystore选项没有指定,如果.keystore文件在用户的工作目录下不存在,那么默认的密钥库文件将被创建并命名为.keystore在用户的工作目录下, 如果-keystore ks_file 选项被指定,但是ks_file 文件不存在,.keystore文件也会被创建。
注意:-keystore选项指定的输入流将被传入到KeyStore.load方法。如果URL被指定为NONE ,一个空的流将被传入到 KeyStore.load方法。如果KeyStore不是一个文件,NONE 应该被指定,
-storepass storepass 这个密码将被用于保护密钥库文件的完成性。
storepass 至少是6个字符长度,storepass 必须被提供,才能访问密钥库的内容。如果 -storepass 选项在命令行中没有被提供,系统会提示用户。
当从密钥库中检索信息时,该密码是可选的,如果没有密码,系统不会检查检索信息的完整性,并显示一条警告。
-providerName provider_name 指定加密服务提供者的名称,这些服务提供者记录在安全属性文件中。
-providerClass provider_class_name 当加密服务提供者没有被记录在安全属性文件中时,该选项指定加密服务提供者的主类文件。
-providerArg provider_arg 和 -providerClass 选项配合使用,作为provider_class_name 构造函数的参数。
-protected 无论是true或false。如果密码必须通过一个受保护的认证路径,此值应指定为true,如专用的PIN码阅读器。
原文http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
相关文章推荐
- JDK中密钥和证书管理工具Keytool常用命令
- keytool - 密钥和证书管理工具
- jdk中密钥和证书管理工具keytool常用命令详解
- keytool - 密钥和证书管理工具(二)
- keytool - 密钥和证书管理工具(三)
- keytool - 密钥和证书管理工具(1)
- keytool - 密钥和证书管理工具
- keytool - 密钥和证书管理工具(2)
- JDK中密钥和证书管理工具Keytool常用命令
- Keytool - 密钥和证书管理工具
- jdk中密钥和证书管理工具keytool常用命令详解
- keytool密钥和证书管理工具-使用详解(整理)
- keytool - 密钥和证书管理工具
- JDK中密钥和证书管理工具Keytool常用命令
- keytool密钥和证书管理工具-使用详解(整理)
- keytool – 密钥和证书管理工具
- JDK中密钥和证书管理工具Keytool常用命令
- keytool - 密钥和证书管理工具
- 如何用keytool工具导入私有密钥和自签发证书?
- java-使用keytool来创建管理密钥及证书等-java学习笔记(3)