利用tomcat服务器配置https双向认证。

1、为服务器生成证书

打开cmd,进入jdk的bin目录下,输入下面的命令:

  1. keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\homes\tomcat.keystore -validity 36500

命令解释:

  使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件想要存放在“D:\homes\tomcat.keystore”,口令为“123123”。

参数简要说明:

  “D:\homes\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 “tomcat”为自定义证书名称。

根据提示进行迁移,命令为:

  1. keytool -importkeystore -srckeystore D:\homes\tomcat.keystore -destkeystore D:\homes\tomcat.keystore -deststoretype pkcs12

在命令行填写必要参数:

A、 输入keystore密码:此处需要输入大于6个字符的字符串。
B、 “您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。
C、 你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息。
D、 输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以,完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件。

2、为客户端生成证书
为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:

  1. keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\homes\mykey.p12

(mykey为自定义)。

对应的证书库存放在“D:\homes\mykey.p12”,客户端的CN可以是任意值。双击mykey.p12文件,输入刚才设置的密码,即可将证书导入至浏览器(客户端)。

3、让服务器信任客户端证书

  由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

  1. keytool -export -alias mykey -keystore D:\homes\mykey.p12 -storetype PKCS12 -storepass 123123 -rfc -file D:\homes\mykey.cer

(mykey为自定义与客户端定义的mykey要一致,password是你设置的密码)。通过以上命令,客户端证书就被我们导出到“D:\home\mykey.cer”文件了。

下一步,是将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:

  1. keytool -import -v -file D:\homes\mykey.cer -keystore D:\homes\tomcat.keystore

通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

(tomcat为你设置服务器端的证书名)。

4、让客户端信任服务器证书

  由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:

  1. keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer

(tomcat为你设置服务器端的证书名)。

  通过以上命令,服务器证书就被我们导出到“D:\homes\tomcat.cer”文件了。双击tomcat.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。

5、配置Tomcat服务器

a、打开tomcat配置文件,如:D:/Tomcat/conf/server.xml,修改如下,

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />

修改参数为:

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="443" />
  1. <!--
  2. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  3. maxThreads="150" scheme="https" secure="true"
  4. clientAuth="false" sslProtocol="TLS"/>
  5. -->

去掉注释且修改参数为:

  1. <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
  2. maxThreads="150" scheme="https" secure="true"
  3. clientAuth="false" sslProtocol="TLS" keystoreFile="D:/homes/tomcat.keystore" keystorePass="123123"/>

注释:

  1. keystoreFilekeystorePass 两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置
  1. <!--
  2. <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
  3. -->

修改参数

  1. <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />

b、打开D:/Tomcat/conf/web.xml,在该文件</welcome-file-list>后面加上这样一段:

  1. <login-config>
  2. <!-- Authorization setting for SSL -->
  3. <auth-method>CLIENT-CERT</auth-method>
  4. <realm-name>Client Cert Users-only Area</realm-name>
  5. </login-config>
  6. <security-constraint>
  7. <!-- Authorization setting for SSL -->
  8. <web-resource-collection >
  9. <web-resource-name >SSL</web-resource-name>
  10. <url-pattern>/*</url-pattern>
  11. </web-resource-collection>
  12. <user-data-constraint>
  13. <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  14. </user-data-constraint>
  15. </security-constraint>

结果:

tomcat 启用https协议的更多相关文章

  1. 【转】Tomcat启用HTTPS协议配置过程

    转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ...

  2. Tomcat启用HTTPS协议配置过程

    Article1较为简洁,Article2较为详细,测试可行. Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问 ...

  3. 4、Tomcat启用HTTPS协议配置

    一.本地模拟 1.安装jdk,自行百度安装教程 2.打开mac终端,输入命令 keytool -genkeypair -alias "证书名字" -keyalg "RSA ...

  4. pringBoot2.0启用https协议

    SpringBoot2.0之后,启用https协议的方式与1.*时有点儿不同,贴一下代码. 我的代码能够根据配置参数中的condition.http2https,确定是否启用https协议,如果启用h ...

  5. tomcat配置https协议

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

  6. 配置Tomcat使用https协议(配置SSL协议)

    配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...

  7. Tomcat配置https协议访问

    Tomcat9配置https协议访问: https://blog.csdn.net/weixin_42273374/article/details/81010203 配置Tomcat使用https协议 ...

  8. Spring Boot 揭秘与实战(五) 服务器篇 - Tomcat 启用 HTTPS

    文章目录 1. 生成证书 2. 配置 HTTPS 支持 3. 启动与测试 4. 源代码 Spring Boot 内嵌的 Tomcat 服务器可以启用 HTTPS 支持. 生成证书 使用第三方 CA 证 ...

  9. Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)

    通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...

随机推荐

  1. Java-技术专区-虚拟机系列-内存模型(JMM)

           Java8内存模型—永久代(PermGen)和元空间(Metaspace) 一.JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部 ...

  2. ASE——热身作业自我介绍

    自我介绍 大家好我是王皓,由于之前忙于保研的机试和面试导致第一次作业就拖到第二次写blog的时候才交(非常抱歉..)我喜欢玩CTF,觉得学习安全方向的知识,寻找软件或者硬件的漏洞是一件非常有意义且有趣 ...

  3. 【记录】linux中不同颜色代表的含义

    下面是linux约定不同类型文件默认的颜色 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表 ...

  4. vue之路由导航守卫-全局前置守卫

    一.使用方式 全局前置守卫用于在路由配置生效之前进行一些动作,可以使用 router.beforeEach 注册一个全局前置守卫: const router = new VueRouter({ ... ...

  5. spark window本地运行wordcount错误

    在运行本地运行spark或者hadoop代码时可能会遇到一下三种问题   1.Exception in thread "main" java.lang.UnsatisfiedLin ...

  6. war包里面文件的修改方式

    1  将war包移动到一个干净的路径下,使用   jar xvf ROOT.war    命令将war进行解压操作 2  修改相应的文件内容,修改想要修改的文件,比如web.xml 3 使用    j ...

  7. vue static和assets的区别

    static和assets的区别,原理就在于webpack是如何处理静态资源的 assets 1)在vue组件中,所有模板和css都会被vue-html-loader和css-loader解析,并查找 ...

  8. CacheException: java.io.OptionalDataException

    CacheException: java.io.OptionalDataException iro.authc.AbstractAuthenticator] - Authentication fail ...

  9. 线段树维护线性基并——17西安icpc a

    #include<bits/stdc++.h> using namespace std; #define N 10005 int a[N],n,k,q; struct LB{ ]; LB( ...

  10. BZOJ 3230: 相似子串(后缀数组)

    传送门 解题思路 其实题目挺好想的.首先子串排名可以由后缀数组求得,因为不算重复的,所以后缀数组的每个后缀排名的去掉\(lcp\)的前缀排名为当前后缀的子串排名.这样就可以预处理出每个后缀的\(l,r ...