keytool JAVA是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。通过keytool –help查看其用法,详细信息可以参考http: //java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html
创建证书Java 中的 keytool.exe (位于 JDK/Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。
在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它们的意思是:
? CN(Common Name - 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。
? OU(Organization Unit - 组织单位名称)
? O(Organization - 组织名称)
? L(Locality - 城市或区域名称)
? ST(State - 州或省份名称)
? C(Country - 国家名称)
可以采用交互式让工具提示输入以上信息,也可以采用参数,如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”来自动创建。
创建一个证书
指定证书库为 D:/keystore/test,创建别名为 Tomcat 的一条证书,它指定用 RSA 算法生成,且指定密钥长度为 1024,证书有效期为 1 年:
keytool -genkey -alias Tomcat -keyalg RSA -keysize 1024 -keystore C:/keystore/test -validity 365
显示证书库中的证书使用如下命令: keytool -list -keystore C:/keystore/test 将显示 C:/keystore/test 证书库的的所有证书列表
导出到证书文件
使用命令:keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test 将把证书库C:/keystore/test 中的别名为 Tomcat 的证书导出到 TC.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,可以加上 -rfc参数以一种可打印的编者编码输出。 如:
keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test –rfc
查看证书的信息
通过命令: keytool -printcert -file D:/keystore/TC.cer 可以查看证书文件的信息。 也可以在 Windows 资源管理器中双击产生的证书文件直接查看。
删除密钥库中的条目
keytool -delete -alias Tomcat -keystore C:/keystore/test
这条命令将 C:/keystore/test 库中的 Tomcat 这一条证书删除了。
修改证书条目口令
keytool -keypasswd -alias Tomcat -keystore C:/keystore/test,可以以交互的方式修改 C:/keystore/test 证书库中的条目为 Tomcat 的证书。
Keytool -keypasswd -alias Tomcat -keypass oldpasswd -new newpasswd -storepass storepasswd -keystore C:/keystore/test 这一行命令以非交互式的方式修改库中别名为 Tomcat 的证书的密码为新密码 newpasswd,行中的 oldpasswd 是指该条证书的原密码, storepasswd 是指证书库的密码。
分享到:
- 2009-02-26 09:22
- 浏览 1535
- 评论(0)
- 论坛回复 / 浏览 (0 / 6298)
- 查看更多
相关推荐
下面我们将详细探讨Java Keytool的使用方法和相关知识点。 1. **证书与密钥对** 数字证书是一种电子文档,用于证明网络实体的身份。它包含了公钥和相关标识信息,由可信的证书颁发机构(CA)签名。密钥对包括一个...
#### 四、Keytool 常用命令 ##### 1. -genkey - **用途**:创建一个新的密钥对,并生成自签名证书。 - **示例**: ```bash keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore ...
以下是`keytool`的一些常用命令和详细解释: 1. **genkey**: 这个命令用于创建一个新的密钥对(公钥和私钥)以及对应的证书请求。默认情况下,它会在用户的主目录中创建一个名为`.keystore`的文件,并为这个密钥对...
自定义密钥对通常存储在一个`.jks`(Java Keystore)文件中,这是Java和Android常用的密钥库格式,可以存储多个密钥对和证书。 在签名APK时,开发者会使用`keytool`来生成一个Keystore文件,然后使用这个Keystore中...
**一、常用参数** 1. **-genkeypair**:生成一个新的密钥对,并可创建一个自签名证书。此参数用于创建私钥和对应的公钥,并可以自动生成证书。例如: ```bash keytool -genkeypair -alias mykey -keyalg RSA -...
需要注意的是,公钥加密的数据为二进制格式,为了便于显示和存储,经常需要将其转换成可读的字符串格式,常用的方式有Base64编码。解密时,先将字符串解码回二进制格式,再进行解密操作。 7. 密钥库文件的保护: ...
如果你有主类(包含`public static void main(String[] args)`方法的类),可以直接运行,如`java HelloWorld`。 3. **jar**:Java Archive工具,用于打包和管理多个Java类文件。例如,`jar cf myapp.jar ...
X.509 是一种常用的数字证书格式,定义了证书的结构和内容。X.509 证书包含了公钥、所有者身份信息、颁发者身份信息、有效期限等信息。 CertificateUtil 类 CertificateUtil 类是一个工具类,提供了多种方法来生成...
Nginx 和 Tomcat 是两种常用的 Web 服务器,它们在 SSL 安全连接配置上有各自的方法。SSL(Secure Socket Layer)是一种网络安全协议,用于在互联网上建立加密传输通道,保护数据的安全性。本文将详细讲解如何在 ...
使用 `keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000` 命令生成密钥,其中 `my-release-key.keystore` 是密钥库的文件名,`alias_name` 是密钥的别名。...
附录:JDK 中 keytool 常用命令 -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个 mykey 的别名,mykey 中包含用户的公钥、私钥和证书 -alias 产生别名 -key 产生密钥 JBOSS 7 基于 HTTPS 双向 ...
以下是keytool的一些常用命令: - `-certreq`:生成证书请求 - `-changealias`:更改别名 - `-delete`:删除条目 - `-exportcert`:导出证书 - `-genkeypair`:生成密钥对 - `-importcert`:导入证书 - `-...
常用的keytool命令有: * genkey:生成一个新的密钥对和证书。 * -alias:指定别名。 * -keystore:指定密钥库的名称。 * -keyalg:指定密钥的算法。 * -validity:指定创建的证书有效期。 * -keysize:指定密钥...
本主题将深入探讨如何使用Keytool和OpenSSL这两个工具来生成和签发数字证书。 首先,让我们了解什么是数字证书。数字证书是一种电子文档,由受信任的证书颁发机构(CA)签发,它包含公钥的所有者信息以及公钥本身。...
本压缩包“apk反编译工具+5条常用命令.zip”提供了相关工具和命令,帮助我们完成以下五个关键步骤: 1. **翻译成Smali码和XML** Smali是一种汇编语言,用于表示Dalvik虚拟机(DVM)的字节码,它是Android应用运行...
Linux服务器管理是IT运维工作中不可或缺的部分,而熟练掌握常用命令是提升工作效率的关键。本文将详细介绍几个重要的Linux服务器命令,包括keytool、rndc-confgen、umount.nfs、createdb和vacuumdb。 1. keytool...
**其他常用命令**: - `keytool -list -keystore ../jre/lib/security/cacerts`:查看JRE中的可信证书列表。 - `keytool -genkey`:在用户主目录中创建一个默认的`.keystore`文件。 - `keytool -alias`:指定证书...
- 常用文件名:文件名应清晰反映其包含的类或接口的功能,遵循驼峰命名法,并避免使用特殊字符或保留字。 3. 代码规范 - 缩进:一般推荐使用4个空格进行缩进,以保持代码整洁且易于阅读。 - 行宽:为了提高代码...
文档主要包括三部分内容 1.证书制作操作记录 通过openssl制作自签三级证书,即根证书、中间证书、和服务证书。 2.添加自签证书为可信证书 3.1 win添加自签证书为可信... 常用crt/cer、pem、p12/pfx、jks解释说明