`
yaodaqing
  • 浏览: 349328 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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

阅读更多
1、创建一个密钥库mycomstore别名my(服务器端密钥库)
keytool -genkey -dname "CN=www.my.com, OU=NC, O=Shanghai University, L=ZB, ST=Shanghai, C=CN" -alias my -keyalg RSA -keystore mycomstore -keypass wshr.ut -storepass wshr.ut -validity 4000
在文件中C:\WINDOWS\system32\drivers\etc\hosts增加127.0.0.1 www.my.com

2、导出自己创建的密钥库mycomstore别名my的证书为www.my.com.cer (服务器端证书)
keytool -export -alias my -file www.my.com.cer -keystore mycomstore -storepass wshr.ut

3、创建一个密钥库mykeystore别名mytest(客户端密钥库)
keytool -genkey -dname "CN=Xu Yingxiao, OU=Network Certer, O=Shanghai University, L=ZB, ST=Shanghai, C=CN" -alias mytest -keyalg RSA -keystore mykeystore -keypass wshr.ut -storepass wshr.ut -validity 4000

4、导出自己创建的密钥库mykeystore别名mytest的证书为mytest.cer(客户端证书)
keytool -export -alias mytest -file mytest.cer -keystore mykeystore -storepass wshr.ut

5、通过JAVA程序进行证书签名(签发者是密钥库mykeystore中的mytest条目,待签发者是www.my.com.cer)
程序会产生一个新的密钥库newstore密钥newpass;别名是lf_signed

6、导出密钥库newstore中的别名为lf_signed为证书mycomsigned.cer
keytool -export -file mynew.cer -keystore newstore -storepass newpass -alias lf_signed

7、在密钥库mycomstore中引入mytest.cer证书
keytool -import -alias camytest -keystore mycomstore -file mytest.cer -storepass wshr.ut

8、在密钥库mycomstore中引入mynew.cer证书别名为my(也就是进行安装)
keytool -import -alias my -keystore mycomstore -file mynew.cer -storepass wshr.ut

9、把证书mytest.cer发送给客户端进行安装
双击mytest.cer-->点击安装证书-->下一步-->将所有证书放入下列存储区,浏览-->受信任的根证书颁发机构-->确定-->下一步-->完成-->是-->导入成功,确定-->确定;完成安装

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

所有步骤执行过程如下:

D:\>keytool -genkey -dname "CN=www.my.com, OU=NC, O=Shanghai University, L=ZB, ST=Shanghai, C=CN" -a
lias my -keyalg RSA -keystore mycomstore -keypass wshr.ut -storepass wshr.ut -validity 4000

D:\>keytool -genkey -dname "CN=Xu Yingxiao, OU=Network Certer, O=Shanghai University, L=ZB, ST=Shang
hai, C=CN" -alias mytest -keyalg RSA -keystore mykeystore -keypass wshr.ut -storepass wshr.ut -valid
ity 4000

D:\>keytool -export -alias my -file www.my.com.cer -keystore mycomstore -storepass wshr.ut
保存在文件中的认证 <www.my.com.cer>

D:\>keytool -export -alias mytest -file mytest.cer -keystore mykeystore -storepass wshr.ut
保存在文件中的认证 <mytest.cer>

JAVA程序签名证书。

D:\>keytool -export -file mynew.cer -keystore newstore -storepass newpass -alias lf_signed
保存在文件中的认证 <mynew.cer>

D:\>keytool -import -alias camytest -keystore mycomstore -file mytest.cer -storepass wshr.ut
所有者:CN=Xu Yingxiao, OU=Network Certer, O=Shanghai University, L=ZB, ST=Shanghai, C=CN
签发人:CN=Xu Yingxiao, OU=Network Certer, O=Shanghai University, L=ZB, ST=Shanghai, C=CN
序列号:4cbeebcc
有效期: Wed Oct 20 21:17:00 CST 2010 至Sat Oct 02 21:17:00 CST 2021
证书指纹:
         MD5:77:9F:1E:C0:A1:FF:17:A4:93:38:77:31:26:39:8A:EB
         SHA1:7F:1B:00:83:D4:AA:57:01:26:27:26:D8:63:92:DE:80:6A:A0:A3:2B
         签名算法名称:SHA1withRSA
         版本: 3
信任这个认证? [否]:  是
认证已添加至keystore中

D:\>keytool -import -alias my -keystore mycomstore -file mynew.cer -storepass wshr.ut
认证回复已安装在 keystore中



tomcat中的配置为:C:\Javadevelop\Tomcat6.0\conf\server.xml
<Connector port="443" minSpareThreads="5" maxSpareThreads="75" 
				enableLookups="true" disableUploadTimeout="true" 
				acceptCount="100" maxThreads="200" 
				scheme="https" secure="true" SSLEnabled="true" 
				clientAuth="false" sslProtocol="TLS" 
				keystoreFile="C:\\Users\\yaodaqing\\tmp\\mycomstore" keystorePass="wshr.ut"
				truststoreFile="C:\\Users\\yaodaqing\\tmp\\mykeystore" truststorePass="wshr.ut"/>
分享到:
评论
1 楼 bewithme 2012-09-28  
兄弟,你这个是服务端和客户端双向认证吗?如果是,clientAuth="false"应该是clientAuth="true" 吧,如果不是,这个流程好像有点不对呀,应该先生成一个根证书,再生成服务器证书,然后用根证书给服务器证书签一个名。而且我用你这个配起来也运行不起来。详聊加QQ 359709421

相关推荐

    JDK生成ssl证书

    本节将详细介绍如何使用`keytool`命令为服务器生成自签名证书,并让客户端信任此证书的过程。 ##### 第一步:为服务器生成证书 1. **打开命令行工具**:首先,打开命令行窗口,切换到JDK的bin目录。 2. **生成证书...

    KeyTool 图形化的Key工具制作

    如果我们要自己充当CA,可以使用KeyTool生成自签名证书,或者为其他证书签名。 制作图形化KeyTool的过程可能包括以下步骤: 1. 安装图形化KeyTool工具:这通常是一个第三方软件,比如KeyStore Explorer或Portecle...

    JAVA keytool数字证书生成及应用

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

    keytool-advanced-v2.01.zip

    Java Keytool,作为Java Development Kit(JDK)中的一个重要组件,是一个用于管理数字证书和密钥对的命令行工具。它提供了生成、存储和管理密钥对、证书请求、以及导入和导出证书的功能。在网络安全中,这些证书和...

    keytool实现服务端和客户端双向加密

    5. **keytool**:是JDK自带的一个命令行工具,用于管理keystore中的密钥和证书。 #### 二、实现双向加密的过程 接下来,我们将分步骤介绍如何使用`keytool`来创建服务端和客户端所需的证书和keystore,并实现双向...

    windows下安卓证书生成命令

    通过`keytool`,我们可以创建新的密钥对、自签名证书、导出证书等,这些功能对于Android应用开发来说至关重要。 ### 三、安卓证书生成命令详解 根据题目给出的部分内容:“keytool-genkey-aliasandroid.keystore-...

    java生成X509证书jar包

    2. **创建自签名证书**:使用`X509v3CertificateBuilder`构建X509证书,包含主体(Subject)和颁发者(Issuer)信息,通常在自签名证书中,这两个信息是一致的。还需要设置有效期、序列号、公钥等关键字段。 3. **...

    jdk常用命令

    14. **keytool**:管理密钥和证书,用于创建和管理Keystore,对于SSL/TLS连接和数字签名至关重要。 15. **appletviewer**:用于本地运行Java Applet,但现在随着浏览器对Java插件的支持减少,使用较少。 了解并...

    Android App的签名打包

    1. 创建Key:使用`keytool`工具生成一个密钥库(Keystore),这个工具通常位于JDK的bin目录下。例如,命令`keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore`会生成一个...

    APKTool.zip

    keytool是Java Development Kit (JDK)自带的一个工具,它允许创建、管理和操作密钥对和证书,包括生成新的密钥对、导出公钥证书以及验证证书链。 接着,"platform.x509.pem"是一个X.509公钥证书文件,通常用于平台...

    SSL中文学习资料.docx

    2. 如果需要,创建自签名的CA证书或使用第三方CA进行签名。 3. 更新Tomcat的配置文件`server.xml`,添加SSL Connector配置,指定Keystore路径、密码等相关信息。 4. 重启Tomcat服务,SSL连接就配置完成了。 通过...

    以SSL加强Tomcat的安全防护能力

    虽然自签名证书可以实现基本的加密功能,但由于不是由知名认证机构颁发的,因此在客户端浏览器上可能会出现安全警告。为了消除这些警告,可以考虑向权威的证书授权机构申请证书。这不仅能够提高网站的安全性,还能...

    Portal SSL 配置(支持PKI SSO登录,中文)

    - 创建Keystore:使用KeyTool创建两个JKS格式的Keystore,一个用于服务器证书,一个用于存储信任列表。 - 导入根证书:将CA中心的国家根证书和省厅根证书导入信任列表Keystore,建立信任链。 - 生成服务器证书:...

    Java技术:java对安全性的支持.pdf

    利用keytool命令,可以执行创建证书请求(Certificate Signing Request, CSR)、删除密钥对、导出密钥对、导入密钥对、更改密钥库口令等操作。公钥证书是使用证书颁发机构(CA)提供的服务来签署的,CA负责为个人或...

    portecle-1.11

    keytool是Java Development Kit (JDK) 自带的一个命令行工具,用于管理Java keystore,它包含公钥、私钥和证书链。 Portecle的功能包括但不限于: 1. **创建和管理Keystores**:你可以通过Portecle创建新的...

    Android中获取sha1证书指纹数据的方法

    本文将详细介绍如何在Android环境中利用命令行工具`keytool`获取SHA1证书指纹数据。 首先,`keytool`是Java开发工具包(JDK)自带的一个命令行工具,用于管理密钥对、证书和证书库。它允许用户创建、查看、导入、...

    Jdev 开发 Web Service

    - **使用 Sun Keytool**: 为了创建密钥存储器,开发者需要使用 Sun 的 Keytool 实用工具,该工具可以创建 RSA 自签名证书,用于测试服务的安全性。 - **密钥存储器结构**: 密钥存储器包含了两个自签名证书,分别是 ...

Global site tag (gtag.js) - Google Analytics