`
tedeyang
  • 浏览: 328158 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

怎么用JDK(keytool.exe)生成自己的数字证书

阅读更多

怎么用JDK(keytool.exe)生成自己的数字证书

使用JDK自带的keytool.exe可以生成证书存储库。证书中包含了创建者的若干信息以及公钥。 

官方文档:(英文JDK1.3)http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html

官方文档:(中文JDK1.2)http://proxy73.nyist.net/java/ja ... olaris/keytool.html

以下是简单说明:

 

QUOTE:

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 是指证书库的密码。

=====================================================================

下面我们来生成一个证书库:

 

QUOTE:
 

C:\Program Files\Java\jdk1.5.0_08\bin>keytool -genkey -keystore tohot.store -alias x
输入keystore密码:  tohot
Keystore 密码太短 -至少必须为6个字符
输入keystore密码:  password
您的名字与姓氏是什么?
  [Unknown]:  yangxg
您的组织单位名称是什么?
  [Unknown]:  x.cn
您的组织名称是什么?
  [Unknown]: x .cn
您所在的城市或区域名称是什么?
  [Unknown]:  changzhou
您所在的州或省份名称是什么?
  [Unknown]:  jiangsu
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=xxx, OU=x.cn, O=x.cn, L=changzhou, ST=jiangsu, C=CN 正确吗?
  [否]:  y

输入<x>的主密码
        (如果和 keystore 密码相同,按回车):

 

注意:第一次要求输入的密码是这个证书库的访问密码,第二次的是私钥。

然后从这个x.store文件中导出认证文件。

 

QUOTE:

C:\Program Files\Java\jdk1.5.0_08\bin>keytool -export -alias x-file x.cer -keystore x.store
输入keystore密码:  password
保存在文件中的认证 <x.cer>

结果如图所示,双击x.cer文件,可以查看该证书的相关信息。到此为止,我们自己的数字证书就出炉了。

 

【2008-1】

分享到:
评论

相关推荐

    KeyTool 工具生成X.509证书

    在本文中,我们将深入探讨KeyTool的基本用法、X.509证书的概念,以及如何使用KeyTool生成这种类型的证书。 X.509是一种国际标准,用于定义证书的格式,它包含了公钥和相关标识信息,如组织名称、地理位置等,常用于...

    KeyTool.GUI.1.6 证书密钥查看生成工具

    KeyTool是Java Development Kit (JDK)自带的一个命令行工具,它主要用于创建、管理及导出数字证书和密钥对。这些证书用于验证服务器的身份,确保数据传输的安全性,比如在HTTPS协议中。 2. **证书与密钥** - **...

    命令行keytool使用 证书DN生成数字证书容器 空格

    本篇文章将深入探讨`keytool`的使用,特别是如何通过命令行生成证书的Distinguished Name (DN)以及如何创建数字证书容器。 首先,让我们理解什么是Distinguished Name (DN)。DN是X.509证书中一个独特的标识符,它...

    java生成X509证书jar包

    Java生成X509证书是Java开发者在进行安全通信时常用的一种技术,X509是一种数字证书的标准格式,广泛应用于SSL/TLS协议、PKI(公钥基础设施)系统等。在Java中,通常通过使用Bouncy Castle库(BC)来实现X509证书的...

    JDK中利用keytool创建自签名证书

    在Java Development Kit (JDK) 中,`keytool` 是一个强大的命令行工具,用于管理密钥对(公钥和私钥)以及数字证书。它主要用于创建、存储、备份、恢复、导入和导出这些安全相关的实体。在这个场景中,我们将深入...

    一个生成数字证书工具

    从一个高人那里得到的. 根目录难得的数字证书生成软件下,其中zxpca100.exe文件是用来生成数字证书的,zxpfp100.exe文件是用来给文件加密解密的. 功能强大,唯一的不足的地方时作者版权思想太强了,经常弹出版权信息

    jdk-8u211-windows-x64.exe.rar

    8. **其他实用工具**:如appletviewer(用于本地运行Applet)、jconsole(用于监视Java应用的性能和内存使用情况)、keytool(管理数字证书和密钥)等。 JDK 8u211是一个更新版本,修复了之前版本中的安全漏洞和...

    JAVA keytool数字证书生成及应用

    Java的`keytool`工具是Java Development Kit (JDK) 中的一个重要组件,主要用于管理和操作密钥对(公钥和私钥)以及数字证书。它提供了在本地系统中创建、导入、导出、查看和管理这些安全凭证的功能,这对于开发和...

    Keytool与数字证书

    本文主要介绍了如何使用Keytool工具来生成密钥、创建自签名证书、导入第三方证书、导出数字证书以及配置HTTPS服务的过程。这些步骤对于搭建安全的网络通信至关重要。在实际操作过程中需要注意细节,如密钥库密码的...

    java获取数字证书信息

    在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...

    keytool证书制作工具

    `keytool`是Java开发工具包(JDK)中...综上所述,`keytool`是Java环境下的强大工具,用于管理和操作数字证书,确保网络通信的安全性。通过熟练掌握其用法,开发者可以更好地保护自己的系统和服务免受潜在的安全威胁。

    基于Java的密钥管理工具 Keytool-IUI.zip

    Keytool是Java平台上的一个标准工具,用于生成、存储和管理密钥对以及数字证书。它在Java安全框架中扮演着核心角色,支持SSL/TLS协议,确保网络通信的安全。通过使用Keytool,开发者可以创建本地密钥库,生成公钥和...

    keytool-importkeypair.zip

    它允许用户创建、查看、导出、导入以及验证数字证书。在Android中,`keytool`用于生成和管理用于签名APK的密钥对。 `importkeypair`是`keytool`的一个操作选项,用于导入一个已存在的密钥对到Keystore文件中。这个...

    jdk-8u311-windows-x64.zip

    在生成打包证书的过程中,开发者首先会使用JDK自带的keytool工具创建一个私钥和对应的证书请求,然后提交给证书颁发机构(CA)进行签名。CA验证信息后,会返回一个已签名的证书,开发者再用这个证书和私钥对APK进行...

    数字证书生成

    数字证书生成doc命令 1.1生成服务端证书 开始-运行-CMD-在dos窗口执行下执行命令: keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:/self-file/server/tomcat.keystore -dname "CN=127.0.0.1,OU=zlj,...

    java jdk生成安卓app证书(csdn)————程序.pdf

    在Android应用开发中,发布应用到Google Play商店或者进行签名安装时,必须使用数字证书对APK进行签名。本文将详细介绍如何使用Java JDK生成安卓应用的证书,以便于完成应用的发布流程。 首先,确保你的计算机上...

    基于java的开发源码-密钥管理工具 Keytool-IUI.zip

    Java的Keytool是一个重要的工具,它用于管理Java的密钥对和数字证书,这些是进行安全网络通信的基础。Keytool的全名是“Java Key Tool”,它被集成在Java Development Kit (JDK) 中,提供了生成、存储和管理密钥对、...

    CA.zip_certificates_openssl 证书_数字证书

    以下是使用Keytool生成自签名证书的基本步骤: 1. 创建密钥对:使用`keytool -genkeypair`命令生成一对公钥和私钥。 2. 申请自签名证书:使用`keytool -selfcert`命令为该密钥对创建自签名证书。 3. 导出证书:如果...

    keytool1.6

    - 生成数字证书。 - 存储和管理本地密钥库。 - 验证证书链。 - 导入和导出证书。 在`keytool1.6`版本中,它提供了基本的安全功能,使得开发者能够创建和管理SSL/TLS证书,用于HTTPS通信,以及对Java应用程序进行...

    密钥管理工具 Keytool-IUI.7z

    Keytool-IUI 是一个用于管理和操作密钥对以及数字证书的命令行工具,它是Java开发工具包(JDK)的一部分。这个压缩包“Keytool-IUI.7z”可能包含了增强用户界面(IUI)的版本,使得密钥管理过程更为直观和便捷,尤其...

Global site tag (gtag.js) - Google Analytics