keytool - 密钥和证书管理工具(一)

        keytool - 密钥和证书管理工具

        管理密钥存储库、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 无论是truefalse。如果密码必须通过一个受保护的认证路径,此值应指定为true,如专用的PIN码阅读器。


原文http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值