利用JDK自带工具keyTool生成安全证书
前言:说一下最近做的工作,主要利用iText给网页中生成好的html报表转化为pdf格式的文件,并且在其中加入水印,数字签名等等,这部分主要介绍安全证书的目的就是为了做数字签名部分用的。
下面利用jdk中自带的keytool生成安全证书:
1:生成服务器证书
打开CMD命令行工具,cd jdk的bin目录下,如下图所示:

利用keytool生成安全证书:官网api
下面说一下简单的参数
keytool
-genkey (在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书)
-alias tomcat(别名)
-keypass 123456(别名密码)
-keyalg RSA(算法)
-keysize 1024(密钥长度)
-validity 365(有效期,天单位)
-keystore d:/temp/keys/tomcat.keystore(指定生成证书的位置和证书名称) //注意d:/temp/keys/文件夹必须提前建立好
-storepass 123456(文件存储的密码,也就是获取keystore信息所需的密码)
结合起来:
keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore d:/temp/keys/tomcat.keystore -storepass 123456
回车之后会让你填写如下图信息:

如上图我不小心将路径写错了,则会出现找不着对应文件的错误。当我修改过来在继续执行,则会发现建立完成。

2 生成客户端证书
客户端是为了证书的相互验证,为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,当然,默认情况下证书有多种格式可以选择。
因此,使用如下命令生成: keytool
-genkey
-alias client (别名)
-keypass 123456 (密码)
-keyalg RSA (算法)
-storetype PKCS12 (存储方式)
-keypass 123456 (key密码)
-storepass 123456 (store密码)
-keystore D:、temp/keys/client.p12 (客户端验证证书存储路径)
整合起来:
keytool -genkey -alias client -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystore D:/temp/keys/client1.p12 -storepass 123456

填完信息之后,没有任何提示表示成功

3 让服务器端信任客户端证书
1、由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:
keytool -export -alias client -keystore D:/temp/keys/client.p12 -storetype PKCS12 -keypass 123456 -file D:/temp/keys/client.cer
注意:

同时在对应的文件夹下面生成了验证文件:client1.cer

2、将该文件导入到服务器的证书库,添加为一个信任证书:
keytool -import -v -file D:/temp/keys/client1.cer -keystore D:/temp/keys/tomcat.keystore -storepass 123456

完成之后通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -v -keystore D:/temp/keys/tomcat.keystore
4 让客户端信任服务器证书
1、由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览器的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:
keytool -keystore D:/temp/keys/tomcat.keystore -export -alias tomcat6 -file D:/temp/keys/server.cer

对应的目录下面生成信任文件

2、双击server.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。填入方法:
打开浏览器 - 工具 - internet选项-内容- 证书-把中级证书颁发机构里的www.localhost.com(该名称即时你前面生成证书时填写的名字与姓氏)证书导出来-再把导出来的证书导入 受信任的根颁发机构 就OK了。
利用JDK自带工具keyTool生成安全证书的更多相关文章
- JDK自带工具keytool生成ssl证书
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...
- 利用JDK自带的keytool生成SSL证书然后导入到SpringBoot
一:生成命令如下(这一步生成的暂不知道干嘛用的) E:\Desktop\Documents\证书>keytool -genkey -alias tomcat -keypass - -validi ...
- JDK自带工具keytool生成ssl证书 和 HTTPS双向认证
创建证书(第一步) keytool -genkey -alias "baidu" -keypass "123456" -keystore "D:/ba ...
- 利用JDK自带工具监控JVMCPU和内存指标
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- tomcat配置https–采用JDK自带的keytool工具生成证书
转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别( ...
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 使用keytool生成ssl证书
使用keytool生成ssl证书 在项目中由于要使用https访问项目,然后了解到jdk有一个自带的工具keytool可以用来生成ssl证书,从而可以通过https进行访问. 使用keytool生成s ...
- jvm性能监控(3)-jdk自带工具 jps jstack jmap
一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id jstack 查看Java线程 jstack -l pid; 做thread dump ...
- JDK 自带工具试用(一)
简述: 运维监控会用到JDK的小工具 说明: 1. jps 用来查看当前运行的Java进程 我在eclipse中起了一个web 应用 或者用jps -l 可以查看的更清楚一点 jps -v 看到103 ...
随机推荐
- uestc Another LCIS
Another LCIS Time Limit: 1000 ms Memory Limit: 65536 kB Solved: 193 Tried: 2428 Description For a se ...
- Redis-SDS
Redis 的简单动态字符串 (simple dynamic string,SDS) SDS的结构: struct sdshdr { int len; //保存的字符串长度. int free; ...
- PHP读取Excel类文件
想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的.但是每一种的操作必然都是不同的,可原理应该都是大同小异. 这个文件夹里包含的就是PHPExcel类文件,在外面还 ...
- Microsoft Toolkit.exe激活office 2010方法
1.双击打开激活工具 2.点击下方的office图标. 3.选择Activation标签,下拉选择AutoKMS,点击Install,完成后点击Activate,即可.
- EF6 按条件更新多行记录的值
using (var db = new MyDbContext()) { string fromUser = ""; //sender string toUser = " ...
- Web前端和后端开发的区别和要求
Web前端和后端开发的区别和要求 有时候自己会分不清,其实是因为前后端都了解,类似于全栈工程师,但又什么都不是很精通.那到底什么是前端.后端呢,我整理了一些企业要求级别的前端/后端基础,开发框架等. ...
- C#-MDI-多窗口通信方法总结
总结C#中窗体间传递数据的几种方法 (由别人的方法整理) 转自:http://blog.csdn.net/daisy423xu/article/details/1579854 在编写C#windows ...
- UITableView的UITableViewStyleGrouped
UITableView的UITableViewStyleGrouped 以下图例就是分组UITableViewStyleGrouped的样式 本人提供快速集成的方法,不弄脏你那双手:) 源码: Tab ...
- POP3、SMTP端口(SSL、TSL)
POP3服务器地址: 110 995 支持SSLSMTP服务器地址: 25 465 或者 587 支持SSL(TSL) 465端口是SSL/TLS通讯协议的 ...
- 通过Windows Server 2008 R2建立iSCSI存储
名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...