用keytool制作证书并在tomcat配置https服务(三)
用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服务(三)的更多相关文章
- 用keytool制作证书并在tomcat配置https服务(二 )
用keytool制作证书并在tomcat配置https服务(一) 双向认证: 我们上边生成了服务端证书,并发送给客户端进行了验证. 双向认证是双向的,因此还差客户端证书. 1.为方便导入浏览器,生成p ...
- 用keytool制作证书并在tomcat配置https服务(一)
https分为单项认证和双向认证. 一般https页面上的访问都是单项认证,服务端发送数字证书给客户端,客户单方面验证.而服务端不做验证. 而双向认证,需要双方都有证书,然后发送给对方进行验证.一般用 ...
- 用keytool制作证书并在tomcat配置https服务(四)
用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(三) 上 ...
- tomcat配置https–采用JDK自带的keytool工具生成证书
转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别( ...
- 用tomcat配置https自签名证书,解决 ios7.1以上系统, 苹果inHouse发布
用tomcat配置https自签名证书,解决 ios7.1以上系统苹果inHouse发布不能下载安装的问题教程,话说,我其实最讨厌配置某某环境了,因为某一个小环节一旦出错,你的所有工作往往会功亏一篑, ...
- tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)
#### tomcat配置https 准备工作 下载好证书文件,下载的时候可以选择为tomcat文件.我这下载下来是压缩包.解压后就是下图的样子. 以.key结尾的文件是证书的key 以.pem结尾的 ...
- tomcat配置https协议
tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗 ...
- Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...
- Nginx、Tomcat配置https
一.Nginx.Tomcat配置https 前提就是已经得到了CA机构颁发的证书 一.合并证书 1.假设证书文件如下 秘钥文件server.key,证书CACertificate-INTERMEDIA ...
随机推荐
- js学习笔记 -- Promise
Promise new Promise( function(resolve, reject) {...} /* executor */ ); executor是带有 resolve 和 reject ...
- C# 序列化(Binary、Xml、Soap)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- AndroidAPI
1词典 百度翻译 http://api.fanyi.baidu.com/api/trans/product/index 百度翻译支持多种语言互相翻译,包含PHP, JS, Python, C, Jav ...
- 彻底理解和解决移动WEB开发中CLICK点透问题
在移动WEB开发中,有时候可能会出现点透问题,本文将围绕这个TAP点透问题,详细的讲述到底什么是点透,为什么会出现点透,如何避免出现点透,如果不可避免的出现了,如何解决解决移动WEB开发中CLICK点 ...
- 性能测试工具LoadRunner23-LR之Analysis 性能分析
一.图表分析 1.Average Transaction Response Time(事务平均响应时间) “事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测 ...
- python3.4 x86_64-linux-gnu-gcc Error
running install running build running build_py creating build creating build/lib.linux-x ...
- Python 多继承(新式类) 的mro算法
转载自:http://www.cnblogs.com/panyinghua/p/3283831.html mro即method resolution order,主要用于在多继承时判断调的属性的路径( ...
- NLog学习笔记二:深入学习
配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. 配置文件位置 启动的时候,NLog会试图查找配置文件完成自动配置,查找的文件依次如下(找到配置信息则结束 ...
- Visual Studio 2017 安装失败,你们有这样的问题吗?怎么解决
由于发生一个或多个包故障,产品未能安装列出的工作负荷和组件. 工作负荷不完整 使用 JavaScript 的移动开发 (Microsoft.VisualStudio.Workload.WebCross ...
- python 3.6 链接mssql 进行数据操作
#!/usr/bin/env python # -*- coding: UTF-8 -*- import pymssql class MSSQL(object): ''' 对pymssql的简单封装 ...