前言:说一下最近做的工作,主要利用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生成安全证书的更多相关文章

  1. JDK自带工具keytool生成ssl证书

    前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...

  2. 利用JDK自带的keytool生成SSL证书然后导入到SpringBoot

    一:生成命令如下(这一步生成的暂不知道干嘛用的) E:\Desktop\Documents\证书>keytool -genkey -alias tomcat -keypass - -validi ...

  3. JDK自带工具keytool生成ssl证书 和 HTTPS双向认证

    创建证书(第一步) keytool -genkey -alias "baidu" -keypass "123456" -keystore "D:/ba ...

  4. 利用JDK自带工具监控JVMCPU和内存指标

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  5. tomcat配置https–采用JDK自带的keytool工具生成证书

    转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别( ...

  6. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  7. 使用keytool生成ssl证书

    使用keytool生成ssl证书 在项目中由于要使用https访问项目,然后了解到jdk有一个自带的工具keytool可以用来生成ssl证书,从而可以通过https进行访问. 使用keytool生成s ...

  8. jvm性能监控(3)-jdk自带工具 jps jstack jmap

    一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump ...

  9. JDK 自带工具试用(一)

    简述: 运维监控会用到JDK的小工具 说明: 1. jps 用来查看当前运行的Java进程 我在eclipse中起了一个web 应用 或者用jps -l 可以查看的更清楚一点 jps -v 看到103 ...

随机推荐

  1. uestc Another LCIS

    Another LCIS Time Limit: 1000 ms Memory Limit: 65536 kB Solved: 193 Tried: 2428 Description For a se ...

  2. Redis-SDS

    Redis 的简单动态字符串 (simple dynamic string,SDS) SDS的结构: struct sdshdr { int len;  //保存的字符串长度. int free;  ...

  3. PHP读取Excel类文件

    想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的.但是每一种的操作必然都是不同的,可原理应该都是大同小异. 这个文件夹里包含的就是PHPExcel类文件,在外面还 ...

  4. Microsoft Toolkit.exe激活office 2010方法

    1.双击打开激活工具 2.点击下方的office图标. 3.选择Activation标签,下拉选择AutoKMS,点击Install,完成后点击Activate,即可.

  5. EF6 按条件更新多行记录的值

    using (var db = new MyDbContext()) { string fromUser = ""; //sender string toUser = " ...

  6. Web前端和后端开发的区别和要求

    Web前端和后端开发的区别和要求 有时候自己会分不清,其实是因为前后端都了解,类似于全栈工程师,但又什么都不是很精通.那到底什么是前端.后端呢,我整理了一些企业要求级别的前端/后端基础,开发框架等. ...

  7. C#-MDI-多窗口通信方法总结

    总结C#中窗体间传递数据的几种方法 (由别人的方法整理) 转自:http://blog.csdn.net/daisy423xu/article/details/1579854 在编写C#windows ...

  8. UITableView的UITableViewStyleGrouped

    UITableView的UITableViewStyleGrouped 以下图例就是分组UITableViewStyleGrouped的样式 本人提供快速集成的方法,不弄脏你那双手:) 源码: Tab ...

  9. POP3、SMTP端口(SSL、TSL)

    POP3服务器地址: 110           995 支持SSLSMTP服务器地址: 25            465 或者 587 支持SSL(TSL) 465端口是SSL/TLS通讯协议的 ...

  10. 通过Windows Server 2008 R2建立iSCSI存储

    名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...