`
yaodaqing
  • 浏览: 345779 次
  • 性别: 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

相关推荐

    keytool生成公私钥,默认jdk8 使用keytool生成bks或者jks时报错,缺少jar包

    keytool生成公私钥,默认jdk8 使用keytool生成bks或者jks时报错,缺少jar包 包含:bcprov-jdk15-143.jar,local_policy.jar,US_export_policy.jar

    Android签名工具(keytool)

    下载该文件后利用JDK中jarsigner工具生成签名文件 将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore ...

    keytool创建SSL证书

    测试环境为JDK1.8,环境变量需要配置JAVA_HOME或手动修改脚本里的地址; 脚本代码基于:https://blog.csdn.net/nov4th/article/details/122845297

    自签证书制作

    3.3 JDK添加自签证书为可信证书 3.证书格式转换操作记录 openssl生成的pem格式证书转换为p12(pfx/pkcs12)、jks格式证书 keytool生成的jks证书转换为 p12(pfx/pkcs12)、pem格式证书 4。证书安全说明 常用crt/...

    JDK1.8中文文档 JDK1.8中文 jkd8中文文档 JDK中文版

    JDK1.8中文文档 JDK1.8中文 jkd8中文文档 JDK中文版 标准的API规范文档,谷歌中文翻译 全翻译

    利用jdk自带算法实现的AES加解密

    利用jdk自带算法实现的AES加解密工具类及Base64编解码工具类、 文件操作工具类、aes扩展无限制权限策略文件等。 在jdk1.7环境亲测通过。

    信息安全数字签名

    Java数字签名,JDK使用keytool创建数字证书的方法。

    JDK自带的jarsigner签名工具帮助文档

    JDK自带的jarsigner签名工具帮助文档,指导大家用自带的JDK通过控制台签名apk;主要指令如下:jarsigner -verbose -keystore [您的签名存放路径]-signedjar [签名后的文件名] [未签名的文件名] [您的证书名称]

    jdk证书安装工具

    通过java发https请求的时候,有时候会因为不信任而导致请求失败,这个时候又不想让jdk信任所有请求,那就只能给jdk安装目标地址的证书让jdk信任目标地址,但是正常的通过命令提示符安装证书非常麻烦,所以就做了这个工具,...

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

    keytool JAVA是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务

    JDK生成ssl证书

    JDK自带工具生成ssl证书,经过上述操作,使用HTTPS 端口为8443 进行访问的时候 就是经过SSL信息加密,不怕被截获了。 通话的双方,必须是都拥有证书的端,才能进行会话,换句话说,就是只有安装了咱证书的客户端,...

    jdk1.8 源码中文版,jdk直接显示中文注释

    下载后直接去本机jdk目录里替换jdk中的src.zip 再打开idea就能看到中文版的源码注释 示例 https://blog.csdn.net/a7459/article/details/106495622

    在jdk5中使用JSR105实现XML签名认证的解决方案

    在jdk5中使用JSR105实现XML签名认证的解决方案。XML签名认证是JDK1.6的新特性之一,这里介绍了怎样在jdk5中使用JSR105实现XML签名认证

    JDK 1.8中文API文档

    JDK 1.8中文API文档

    oracle jdk1.8.0-181 的安全证书

    oracle jdk1.8.0-181 的安全证书

    jdk8中文手册

    jdk8中文手册

    jdk_8中文文档

    jdk中文文档,积分便宜你的不二选择, jdk中文文档,积分便宜你的不二选择, jdk中文文档,积分便宜你的不二选择

    JDK11安装包,JDK11安装包

    JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...

    jdk8中文说明文档_CHM.zip jdk1.8文档 jdk1.8说明文档

    jdk8中文说明文档_CHM.zip jdk1.8文档 jdk1.8说明文档 官方直接翻译

Global site tag (gtag.js) - Google Analytics