用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. 在ubuntu中安装mysql及简单操作方式

    老规矩,ctrl+alt+t呼出终端, 输入 sudo apt-get update 更新源,否则在运行下面代码时会报出有几个包无法下载,你还是得回来执行这句代码, 输入 sudo apt-get i ...

  2. Mac 终端执行sql命令

    https://www.cnblogs.com/sbj-dawn/p/6905930.html. 远程登录MYSQL数据库 > mysql -u username -p -h hostname ...

  3. Linux环境常用命令

    bash host                    #查看IP对应机器名 hostname         #查看本机名         hostname –i     #查看本机IP mssh ...

  4. fireFox在中国的https网站的时候,老会出 ssl_error_unsupported_version 这个错误。

    fireFox在中国的https网站的时候,老会出 ssl_error_unsupported_version  这个错误. 出现在 这个的解决办法就是 在地址栏里输入 about:config 查找 ...

  5. C++(SOCKET)简单爬虫制作

    先给出代码:(我使用的是VS编译器,需要在项目->project属性-> #include <iostream> #include <stdio.h> #inclu ...

  6. mathjax符号

    mathjax公式 \(\delta\): \delta \(\Delta\): \Delta \(\int\): \int \(\iint\): \iint \(\approx\): \approx ...

  7. MSSql中profiler工具介绍,

    第一次使用profiler感觉真的是很方便. 他的作用可能有很多,但是我只是简单其中一点,就是查看某一时刻数据库执行了哪些操作,执行了哪些语句,执行语句所花费的时间.都可以很方便的查到,这对于我们优化 ...

  8. 多ComboBox实现复杂查询

    关键是,你是要实现什么功能:是四个条件都有内容时查询,还是哪个内容有查哪个? 如果四个组合框都有内容,相对简单些: string s = "select * from 表名 where 身份 ...

  9. ThinkPHP find大坑 不要随便用

    举例: M("User")->find(3); $m=M("User"); $m->userName="aaa"; $m-> ...

  10. Object公用方法

    Object是所有类的父类,任何类都默认继承Object. Object类到底实现了哪些方法?   1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否 ...