JAVA Keytool命令详解

来源:互联网 发布:java中settitle大小 编辑:程序博客网 时间:2024/05/23 16:43

JAVA Keytool 常用命令使用帮助

Keytool是用于管理密钥和证书的工具,使用户和管理员能管理自己的公/私钥对以及相关的证书。

genkey,用于生成公/私密钥对

keytool –genkey –alias mykey –keyalg RSA –keypass 123456 –keystore keystore.jks –storepass 123456

ˉkeyalg:指定密钥使用的加密算法(如RSA)。还可以使用选项keysize指定密钥的长度,如果没有指定长度,那么keytool将使用默认值———1024位。
       ˉkeypass:
指定生成密钥的密码。
       ˉkeystore:
指定存储密钥的密钥库的名称(二进制文件),如果没有指定,那么将创建一个新的密钥库,并将其存储为.keystore文件。
       ˉstorepass:
指定访问密钥库的密码。密钥库创建后,要对其做任何修改都必须提供该密码,以便访问密钥库。
      
在执行-genkey时还会要求用户输入以下几项数据

CN      commen name

OU      organization unit

O        organization

L         location

ST       state

C:           country

其中CN服务器根证书的ip或者域名,即查看证书时的颁发给项

list

用于列出密钥库中全部的项,以及查看与别名相关的项。

keytool –list –keystore keystore.jks

为了显示别名所指定的密钥库项的内容,命令list可以输出证书的MD5指纹。如果指定了选项ˉv,则证书将以人类可读的格式显示;如果指定了选项ˉrfc,则将以Base64编码格式显示证书。

import

导入可信证书。Keytool选项ˉimport用于将可信证书导入密钥库,并将其同唯一的一个别名联系起来。如果客户端信任通信等对体的证书,并希望与其进行可信的客户端交互,则可以在客户端环境中导入可信证书。
将新证书导入密钥库时,keytool工具将验证该证书的完整性和真实性。为此,keytool工具将构建一条以该证书开始到颁发者的自签名证书结束的信任链。可信证书的列表将存储在cacerts文件中。
要将证书导入密钥库,则需要提供标识证书项的唯一别名和密钥密码。

例如,下面的命令从文件cert.cer中将一个证书项导入到密钥库keystore.jks,并将该证书项标识为newcert,最后,该命令将显示证书的持有者和颁发者的信息,并询问用户是否信任该证书

keytool –import –alias newcert –file cert.cer –keystore keystore.jks

printcert

显示证书的信息。Keytool选项ˉprintcert用于显示已从密钥库中导出并存储为文件的证书的信息。由于证书的信息是以证书文件(.cer)的形式存储的,且不会导入密钥库,因此在执行该命令时,不需要指定相关的密钥库和密码。
       keytool –printcert –file cert.cer

certReq

创建证书签发请求(CSR)。可以使用Keytool选项ˉcertreq来生成向CA申请证书的证书签发请求。

keytool –certReq –keystore keystore.jks –file mycsr.csr

delete

删除密钥库。要删除密钥库,可以使用操作系统的删除命令来删除该密钥库文件。
修改密钥库的密码。

storepasswd

要修改密钥库的密码,可以使用keytool选项-storepasswd -new来设置新密码。

keytool –storepasswd –new newpassword –keystore keystore.jks

原创粉丝点击