您的位置:首页 > 其它

keytool程序简介

2013-03-26 21:12 155 查看
1、简介

keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

2、使用

keytool 用法:

-certreq [-v] [-protected]

[-alias <别名>] [-sigalg <sigalg>]

[-file <csr_file>] [-keypass <密钥库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>

[-keypass <密钥库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-delete [-v] [-protected] -alias <别名>

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-exportcert [-v] [-rfc] [-protected]

[-alias <别名>] [-file <认证文件>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-genkeypair [-v] [-protected]

[-alias <别名>]

[-keyalg <keyalg>] [-keysize <密钥大小>]

[-sigalg <sigalg>] [-dname <dname>]

[-validity <valDays>] [-keypass <密钥库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-genseckey [-v] [-protected]

[-alias <别名>] [-keypass <密钥库口令>]

[-keyalg <keyalg>] [-keysize <密钥大小>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-help

-importcert [-v] [-noprompt] [-trustcacerts] [-protected]

[-alias <别名>]

[-file <认证文件>] [-keypass <密钥库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-importkeystore [-v]

[-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]

[-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]

[-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]

[-srcprotected] [-destprotected]

[-srcprovidername <源提供方名称>]

[-destprovidername <目标提供方名称>]

[-srcalias <源别名> [-destalias <目标别名>]

[-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]

[-noprompt]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-keypasswd [-v] [-alias <别名>]

[-keypass <旧密钥库口令>] [-new <新密钥库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-list [-v | -rfc] [-protected]

[-alias <别名>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

-printcert [-v] [-file <认证文件>]

-storepasswd [-v] [-new <新存储库口令>]

[-keystore <密钥库>] [-storepass <存储库口令>]

[-storetype <存储类型>] [-providername <名称>]

[-providerclass <提供方类名称> [-providerarg <参数>]] ...

[-providerpath <路径列表>]

2、范例

1.创建证书

Cmd代码

keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"



说明:

密钥库密码为testtest

证书条目密码为testtest1,若别名为test2则密码为testtest2

这样为个不乱

功能:

创建一个别名为test1的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。

参数说明:

-genkeypair:生成一对非对称密钥;

-alias:指定密钥对的别名,该别名是公开的;

-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;

-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件

注意:

1.“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;

2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码

3.这里所说的证书库和密钥库是等同的(个人观点)

为了测试需要,这里再创建两个别名为test2和test3的证书条目在test.keystore密钥库中,代码如下:

Cmd代码

keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore"

keytool -genkeypair -alias "test3" -keyalg "RSA" -keystore "test.keystore"

2.查看证书库

keytool -list -keystore test.keystore



功能:

查看名为test.keystore的证书库中的证书条目

3.导出到证书文件

keytool -export -alias test1 -file test.crt -keystore test.keystore



功能:

将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中

4.导入证书的信息

keytool -import -keystore test_cacerts -file test.crt



功能:

将证书文件test.crt导入到名为test_cacerts的证书库中,

5.查看证书信息

keytool -printcert -file "test.crt" 、



功能:

查看证书文件test.crt的信息

6.删除密钥库中的条目

删除前查看密钥库test.keysote中的证书条目

keytool -list -keystore test.keystore

删除密钥库test.keystore中别名为test2的证书条目

keytool -delete -keystore test.keystore -alias test2

删除后查看密钥库test.keystore中的证书条目

keytool -list -keystore test.keystore



7.修改证书条目的口令

交互的方式

Cmd代码

keytool -keypasswd -alias test1 -keystore test.keystore



功能:

将密钥库test.keystore中别名为test1的证书条目的密码修改为testtesttest1

非交互方式

keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore test.keystore

功能:

将密钥库test.keystore中别名为test1的证书条目的密码修改为testtest1

节摘自百度百科和http://hi.baidu.com/yanlong662/item/97f5dcd4a17d4fe83dc2cbe8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: