`

JDK中keytool常用命令

    博客分类:
  • java
 
阅读更多
-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg      指定密钥的算法  
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码
-keypass     指定别名条目的密码
-dname       指定证书拥有者信息 例如:  "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list        显示密钥库中的证书信息      keytool -list -v -keystore sage -storepass ....
-v           显示密钥库中的证书详细信息
-export      将别名指定的证书导出到文件  keytool -export -alias caroot -file caroot.crt
-file        参数指定导出到文件的文件名
-delete      删除密钥库中某条目          keytool -delete -alias sage -keystore sage
-keypasswd   修改密钥库中指定条目口令    keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import      将已签名数字证书导入密钥库  keytool -import -alias sage -keystore sagely -file sagely.crt
             导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。

------------------------------------------------------------------------------------------------

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 是指证书库的密码。
分享到:
评论

相关推荐

    jdk常用命令

    本文将深入探讨JDK中的常用命令,这些命令对于任何Java开发者来说都是必不可少的知识点。通过理解并熟练运用这些命令,可以极大地提高开发效率。 1. **javac**:这是Java编译器,用于将源代码(.java文件)转换成可...

    JBOSS 7 基于HTTPS双向SSL认证

    附录:JDK 中 keytool 常用命令 -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个 mykey 的别名,mykey 中包含用户的公钥、私钥和证书 -alias 产生别名 -key 产生密钥 JBOSS 7 基于 HTTPS 双向 ...

    jdk中密钥和证书管理工具keytool常用命令详解

    以下是`keytool`的一些常用命令和详细解释: 1. **genkey**: 这个命令用于创建一个新的密钥对(公钥和私钥)以及对应的证书请求。默认情况下,它会在用户的主目录中创建一个名为`.keystore`的文件,并为这个密钥对...

    Linux命令keytool命令 – 密钥和证书管理工具.docx

    `keytool`是Java开发工具包(JDK)的一部分,主要功能是管理和操作密钥对和数字证书。这个工具在Linux和其他操作系统上广泛用于安全配置,特别是在构建HTTPS服务器、SSL/TLS连接以及进行数字签名等方面。以下是关于`...

    keytool-importkeypair.zip

    首先,`keytool`是Java开发工具包(JDK)中的一个命令行工具,用于管理密钥对(Key Pair)和证书。它允许用户创建、查看、导出、导入以及验证数字证书。在Android中,`keytool`用于生成和管理用于签名APK的密钥对。 ...

    java keytool使用例子

    Java Keytool是Java开发工具包(JDK)中自带的一个命令行工具,主要用于管理数字证书、密钥对以及信任库。这个工具对于开发者和系统管理员来说非常重要,因为它们在进行安全通信,尤其是HTTPS、SSL/TLS连接时起着...

    jdk的配置及其参数的设置

    【JDK常用命令】 1. `javac`:Java编译器,用于将源代码(.java)编译成字节码(.class)。其常见选项包括: - `-g`:控制生成调试信息。 - `-classpath`:指定类路径,用于寻找依赖的类文件。 - `-d`:指定输出编译...

    21天学通java 高清版pdf

    JDK中还包含了一系列常用的命令,比如javac用于编译Java程序,javap用于反编译class文件查看字节码,native2ascii用于字符编码转换,jdb用于调试,jps用于查看JVM进程信息,keytool用于生成keystore文件,jar用于...

    SSl双向认证学习笔记  .doc

    keytool是JDK集成环境中的一部分,用于生成、管理和操作数字证书。常用的keytool命令有: * genkey:生成一个新的密钥对和证书。 * -alias:指定别名。 * -keystore:指定密钥库的名称。 * -keyalg:指定密钥的算法...

    java结合keytool如何实现非对称加密与解密详解

    Keytool是Java Development Kit (JDK)中内置的一个密钥和证书管理工具,它能够管理密钥库(key store)中的密钥对和相关的证书。密钥库是一个存储私钥和公钥证书的容器,通常由口令保护。使用keytool可以方便地生成...

    常用指令1

    在【标题】"常用指令1"和【描述】"常用指令1"中,虽然没有提供具体的知识点,但从【标签】"doc文档"和【部分内容】提及的`jarsigner`指令,我们可以深入探讨这个主题。 首先,理解`jarsigner`的基本概念是必要的。`...

    21天学通JAVA_入门精品

    4. JDK常用命令: - javac命令用于编译Java源文件,生成字节码文件。其中,-g 参数用于生成调试信息,-O 参数用于优化字节码,-classpath 用于指定类路径,-d 用于指定输出目录等。 - native2ascii 用于处理...

    CA.zip_certificates_openssl 证书_数字证书

    Keytool是Java开发工具包(JDK)自带的一个命令行工具,主要用于管理密钥对和证书。通过Keytool,我们可以创建一个密钥库,其中可以存储私钥和对应的数字证书。以下是使用Keytool生成自签名证书的基本步骤: 1. ...

    生成android.keystore

    这一过程涉及到Java KeyStore工具(`keytool`),它是Java开发工具包(JDK)的一部分。本文将详细介绍如何在命令行环境下生成`android.keystore`文件,并提供一些基本的操作指导。 #### 命令解释与步骤说明 1. **...

Global site tag (gtag.js) - Google Analytics