用keytool制作证书并在tomcat配置https服务(一)

用keytool制作证书并在tomcat配置https服务(二)

用keytool制作证书并在tomcat配置https服务(四)

模拟CA实现对服务器证书的认证

我们在前篇的双向认证上继续。

CA认证,是这个机构的根证书已经存在于浏览器中的【受信任的根证书颁发机构】,浏览器信任他,所以不会出现该证书不安全的提示。

那么我们可以模拟一个CA,自己对服务器端证书进行签名,然后把模拟CA的根证书导出来,发送给客户端,让客户端添加到信任机构。

1.首先服务端需要生成一个带证书及主体信息的签名申请文件csr格式,CA需要用来制作签名证书。

keytool -certreq -keyalg RSA -alias tomcat -sigalg SHA256withRSA -keystore D:/ssl/keystore.jks -file D:/ssl/serverreq.csr

2.CA也是有自己的密钥对和密钥库的,创建好。

keytool -genkey -alias rootca -keypass 123456 -keyalg RSA -keysize 2048 -validity 365 -storetype JKS -keystore D:/ssl/castore.jks -storepass 123456

查看一下

keytool -list -v -keystore D:/ssl/castore.jks

3.CA库有了,然后CA用自己的私钥对服务端申请签名文件中的证书进行签名操作。

keytool -gencert -alias rootca -keystore D:/ssl/castore.jks -infile D:/ssl/serverreq.csr -outfile D:/ssl/signedserver.cer

然后我们看一下,发布者是CA

keytool -printcert -file D:/ssl/signedserver.cer

4.我们将CA库的证书导出来,这就是上边这个signedserver.cer的根证书。

keytool -export -alias rootca -keystore D:/ssl/castore.jks -storetype JKS -keypass 123456 -file D:/ssl/rootca.cer

这个证书的作用有两个:

  (1)需要给客户端,客户端需要这个根证书对服务端证书进行验证。

  (2)我们需要把新生成的签名证书再导入到服务端的库里覆盖原来的未签名证书。

    因为是根证书做的签名,不把根证书导入就会报【无法从回复中建立链】这么个错误。

    所以先导入根证书,再导入服务端签名证书。

5.服务端导入根证书

keytool -import -v -alias rootca -file D:/ssl/rootca.cer  -keystore D:/ssl/keystore.jks

6.服务端导入签名证书覆盖原证书

keytool -import -v -alias tomcat -file D:/ssl/signedserver.cer  -keystore D:/ssl/keystore.jks

来看一下服务端的库

keytool -list -v -keystore D:/ssl/keystore.jks

这里边一共有三条信息:

  (1)rootca证书信息

  (2)刚刚导入的覆盖的别名叫tomcat的签名证书

  (3)上一篇做的双向认证导入的客户端证书。

7.把根证书rootca.cer发送给客户端,安装到浏览器中的【受信任的根证书颁发机构】。

到这就结束了,然后我们启动tomcat看下效果【tomcat的server配置还是上一篇的配置,没有变】。

然后我们点击上边的这个小锁查看下证书信息。

结束。

用keytool制作证书并在tomcat配置https服务(三)的更多相关文章

  1. 用keytool制作证书并在tomcat配置https服务(二 )

    用keytool制作证书并在tomcat配置https服务(一) 双向认证: 我们上边生成了服务端证书,并发送给客户端进行了验证. 双向认证是双向的,因此还差客户端证书. 1.为方便导入浏览器,生成p ...

  2. 用keytool制作证书并在tomcat配置https服务(一)

    https分为单项认证和双向认证. 一般https页面上的访问都是单项认证,服务端发送数字证书给客户端,客户单方面验证.而服务端不做验证. 而双向认证,需要双方都有证书,然后发送给对方进行验证.一般用 ...

  3. 用keytool制作证书并在tomcat配置https服务(四)

    用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(三) 上 ...

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

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

  5. 用tomcat配置https自签名证书,解决 ios7.1以上系统, 苹果inHouse发布

    用tomcat配置https自签名证书,解决 ios7.1以上系统苹果inHouse发布不能下载安装的问题教程,话说,我其实最讨厌配置某某环境了,因为某一个小环节一旦出错,你的所有工作往往会功亏一篑, ...

  6. tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)

    #### tomcat配置https 准备工作 下载好证书文件,下载的时候可以选择为tomcat文件.我这下载下来是压缩包.解压后就是下图的样子. 以.key结尾的文件是证书的key 以.pem结尾的 ...

  7. tomcat配置https协议

    tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗 ...

  8. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  9. Nginx、Tomcat配置https

    一.Nginx.Tomcat配置https 前提就是已经得到了CA机构颁发的证书 一.合并证书 1.假设证书文件如下 秘钥文件server.key,证书CACertificate-INTERMEDIA ...

随机推荐

  1. shell中各种括号()、(())、[]、[[]]、{}的作用和区别

    查看原文 - CSDN

  2. 2019.03.19 读书笔记 string与stringbuilder的性能

    1 string与stringbuilder 并不是stringbuilder任何时候都在性能上占优势,在少量(大约个位数)的字符串时,并不比普通string操作快. string慢的原因不是stri ...

  3. Engineer Assignment HDU - 6006 状压dp

    http://acm.split.hdu.edu.cn/showproblem.php?pid=6006 比赛的时候写了一个暴力,存暴力,过了,还46ms 那个暴力的思路是,预处理can[i][j]表 ...

  4. DEDE用{dede:sql}标签取出当前文档的附加表中的内容

    最近在用DEDE做项目,遇到一个需求是要在article_image.htm模板中直接取出附加表addonimages中的某一记录的imgurls字段的内容.而这条记录是不断变化的,比如我点击了< ...

  5. java 模拟实现消费者和生产者问题

    题目要求 用java代码模拟实现:一个人不断往箱子里放苹果,另一个人不断从箱子里取苹果,箱子只能放5个苹果,苹果数量无限.要求不使用java.util.concurrent包中的类. 思路 这道题主要 ...

  6. 赶集网mysql开发36条军规

    写在前面的话: 总是在灾难发生后,才想起容灾的重要性: 总是在吃过亏后,才记得曾经有人提醒过. (一)核心军规 (1)不在数据库做运算    cpu计算务必移至业务层: (2)控制单表数据量    i ...

  7. DOM 事件冒泡

    1.什么是事件冒泡? 事件冒泡就是从具体到不具体, 例如:当你给了一个button按钮一个点击事件,再给他的父级相同的事件,就会按照,button,body,document,window,继续向上冒 ...

  8. SQLServer 连接和联合

    一.内连接(inner join) 默认省略inner ,内连接是严格过滤,等同where限制,连接两端的表都数据都需要过滤. 二.左外连接(left outer join) 以左表为基准进行数据连接 ...

  9. Java—运算符和流程控制语句

    运算符优先级: siwtch语句注意事项: switch 后面小括号中表达式的值必须是整型或字符型 case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带 ...

  10. jQuery + Stimulsoft.Report 选择gridview多行打印

    jQuery + Stimulsoft.Report 报表空间打印多个ID split函数,多行ID 1. 获取选择多行ID(前台) //按钮-打印 function PrinterWorkQuali ...