管理由私钥和认证相关公钥的 X.509 证书链组成的密钥仓库(数据库)。还管理来自可信任实体的证书。
结构
keytool [ commands ]
说明
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。
证书是来自一个实体(个人、公司等)的经数字签名的声明,它声明某些其它实体的公钥(及其它信息)具有某一的特定值(参见证书)。当数据被数字化签名后,校验签名即可检查数据的完整性和真实性。完整性的意思是数据没有被修改或损坏过,真实性的意思是数据的确是来自声称创建了该数据和对它进行了签名的实体。
keytool 将密钥和证书储存在一个所谓的密钥仓库中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。
jarsigner 工具利用密钥仓库中的信息来产生或校验 Java 归档 (JAR) 文件的数字签名。(JAR 文件将类文件、图像、声音和/或其它数字化数据打包在一个文件中)。jarsigner 用 JAR 文件所附带的证书(包含于 JAR 文件的签名块文件中)来校验 JAR 文件的数字签名,然后检查该证书的公钥是否“可信任”,即是否包括在指定的密钥仓库中。
请注意:keytool 和 jarsigner 工具完全取代了 JDK 1.1 中提供的 javakey 工具。这些新工具所提供的功能比 javakey 提供的多,包括能够用口令来保护密钥仓库和私钥,以及除了能够生成签名外还可以校验它们。新的密钥仓库体系结构取代了 javakey 所创建和管理的身份数据库。可以利用 -identitydb keytool 命令将信息从身份数据库导入密钥仓库。
密钥仓库项
在密钥仓库中有两种不同类型的项:
密钥项 - 每项都存放极为敏感的加密密钥信息,这种信息以一种受保护的格式储存以防止未授权的访问。通常,储存在这类项中的密钥是机密密钥,或是伴有用于认证相应公钥的证书“链”的私钥。keytool 和 jarsigner 工具只处理后一类型的项,即私钥及其关联的证书链。
可信任的证书项 - 每项包含一个属于另一方的公钥证书。它之所以叫做“可信任的证书”,是因为密钥仓库的拥有者相信证书中的公钥确实属于证书“主体”(拥有者)所识别的身份。证书发人通过对证书签名来保证这点。
密钥仓库别名
对所有的密钥仓库项(密钥项和可信任的证书项)的访问都要通过唯一的别名来进行。别名不区分大小写,即别名 Hugo 和 hugo 指的是同一密钥仓库项。
当用 -genkey 命令来生成密钥对(公钥和私钥)或用 -import 命令来将证书或证书链加到可信任证书的清单中以增加一个实体到密钥仓库时,必须指定一个别名。后续 keytool 命令必须使用这一相同的别名来引用该实体。
例如,假设您用别名 duke 生成了新的公钥/私钥对,并将公钥用以下命令打包到自签名证书中(参见证书链):
keytool -genkey -alias duke -keypass dukekeypasswd
这指定了一个初始口令“dukekeypasswd”,后续命令都需使用该口令才能访问与别名 duke 关联的私钥。如果后来想更改 duke 的私钥口令,可用类似下述的命令:
keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
这将把口令从“dukekeypasswd”改为“newpass”。
请注意:实际上,除非是作为测试目的或是在安全的系统上,否则不应在命令行或脚本中指定口令。如果没有在命令行上指定所要求的口令选项,您将会得到要求输入口令的提示。当在口令提示符下键入口令时,口令将被即时显示出来(键入什么就显示什么),因此,要小心,不要当着任何人的面键入口令。
密钥仓库位置
每个 keytool 命令都有一个 -keystore 选项,用于指定 keytool 管理的密钥仓库的持久密钥仓库文件名称及其位置。缺省情况下,密钥仓库储存在用户宿主目录(由系统属性的“user.home”决定)中名为 .keystore 的文件中。假如用户名为 uName,则“user.home”属性的缺省值为
C:\Winnt\Profiles\uName,在多用户 Windows NT 系统上
C:\Windows\Profiles\uName,在多用户 Windows 95 系统上
C:\Windows,在单用户 Windows 95 系统上
因此,如果用户名为“cathy”,则“user.home”的缺省值为
C:\Winnt\Profiles\cathy,在多用户 Windows NT 系统上
C:\Windows\Profiles\cathy,在多用户 Windows 95 系统上
密钥仓库的创建
当用 -genkey, -import 或 -identitydb 命令向某个尚不存在的密钥仓库添加数据时,即创建密钥仓库。
更具体地说,如果在 -keystore 选项中指定了一个并不存在的密钥仓库,即加以创建。
如果不指定 -keystore 选项,则缺省密钥仓库将是宿主目录中名为 .keystore 的文件。如果该文件不存在,即加以创建。
分享到:
相关推荐
2. **Keytool命令行工具**:Keytool是Java的标准工具,用于生成、存储、导出、导入和管理密钥对及证书。它可以创建Keystore,这是存储密钥对和证书的安全库,支持多种格式如JKS(Java Key Store)和PKCS12。 3. **...
Keytool的全名是“Java Key Tool”,它被集成在Java Development Kit (JDK) 中,提供了生成、存储和管理密钥对、证书请求以及导入和导出证书的功能。在Java应用程序中实现安全的HTTPS连接、SSL/TLS协议或数字签名时...
keytool 密钥和证书管理工具 keytool 是一个密钥和证书管理工具,用于管理由私钥和认证相关公钥的 X.509 证书链组成的密钥仓库(数据库)。它还管理来自可信任实体的证书。结构 keytool [ 命令] 说明keytool 是个...
Keytool是Java平台上的一个标准工具,用于生成、存储和管理密钥对以及数字证书。它在Java安全框架中扮演着核心角色,支持SSL/TLS协议,确保网络通信的安全。通过使用Keytool,开发者可以创建本地密钥库,生成公钥和...
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥...
Java的密钥管理工具Keytool是Java开发工具集(Java Development Kit, JDK)中的一个重要组件,主要用于管理和操作密钥对、数字证书以及信任存储。在Java应用中,尤其是在涉及到网络通信、数据加密、身份验证等安全性...
**Keytool** 是 Java 开发工具包(JDK)中的一个实用程序,用于管理密钥库(key stores),其中包括私钥(private keys)及其对应的公钥证书(public key certificates)。密钥库是一个存储密钥和证书的地方,可以用来管理和...
它提供了生成、存储和管理密钥对、证书请求、以及导入和导出证书的功能。在网络安全中,这些证书和密钥对是实现安全通信的基础,例如SSL/TLS加密和身份验证。本文将基于"keytool-advanced-v2.01.zip"这一特定版本,...
Java的Keytool-IUI是一个增强版的密钥和证书管理工具,它扩展了标准Java SDK中的Keytool,提供了更友好的用户界面和更多的功能。Keytool是Java平台自带的一个命令行工具,主要用于创建、管理和查询密钥对以及数字...
这个项目主要涉及使用`keytool`命令行工具导入密钥对,这是Java安全框架的一部分,用于管理数字证书和密钥对。在Java应用开发,尤其是Android应用开发中,`keytool`工具是至关重要的,因为我们需要为应用程序签名,...
Keytool-IUI 是一个用于管理和操作密钥对以及数字证书的命令行工具,它是Java开发工具包(JDK)的一部分。这个压缩包“Keytool-IUI.7z”可能包含了增强用户界面(IUI)的版本,使得密钥管理过程更为直观和便捷,尤其...
`keytool-importkeypair`命令是`keytool`的一个扩展,主要用于将私钥和相应的X.509证书导入到KeyStore,这在生成和管理Android系统签名时非常有用。通过执行这个命令,开发者可以将已有的密钥对导入到特定的KeyStore...
在Android中,`keytool`用于生成和管理用于签名APK的密钥对。 `importkeypair`是`keytool`的一个操作选项,用于导入一个已存在的密钥对到Keystore文件中。这个过程通常发生在你已经有了一个在外部生成的密钥对,...
`keytool-importkeypair.zip`这个压缩包文件包含了用于系统签名的相关工具和文件,它主要用于生成和管理数字证书,确保应用或系统的安全性。 首先,`keytool`是Java开发工具包(JDK)中的一个命令行工具,用于管理...
`keytool`是Java开发工具包(JDK)的一部分,主要功能是管理和操作密钥对和数字证书。这个工具在Linux和其他操作系统上广泛用于安全配置,特别是在构建HTTPS服务器、SSL/TLS连接以及进行数字签名等方面。以下是关于`...
标题中的"keytool-api-1.5-1.5.zip"是一个软件开发相关的压缩包,keytool是Java平台上的一个标准工具,用于管理Java密钥对和数字证书。API(应用程序编程接口)则是提供给开发者使用的接口,允许他们与keytool进行...
keytool-importkeypair—将密钥/证书对导入现有Java密钥存储库的shell脚本 安装: 将keytool-importkeypair添加到PATH中 使用: Keytool-importkeypair [-k keystore] [-p storepass] -pk8 pk8 -cert cert -alias ...
在Android开发中,`keytool`被用来创建和管理数字证书,这些证书用于对APK进行签名。签名是验证应用身份的关键步骤,确保应用未被篡改,并允许用户信任安装的来源。 在`keytool-importkeypair-master`项目中,...