11. 利用Tomcat服务器配置HTTPS双向认定

文章目录

  • Tomcat配置HTTPS
    • 1.为服务器生成证书
    • 2.为客户端生成证书
    • 3.让服务器信任客户端证书
    • 4.将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:
    • 5.查看证书库
    • 6.让客户端信任服务器证书
    • 7.配置tomcat
    • 8.验证

Tomcat配置HTTPS

1.启动cmd控制台,进入%JAVA_HOME%/bin目录# cd D:\java\jdk1.8.0_144\bin

image

1.为服务器生成证书

1.利用java的keyTool工具为tomcat生成证书,假定目标机器的域名为"localhost","keystore"文件存放在"D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore"下,口令为"password",使用如下命令# keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore -validity 36500
2.文件路径要事先创建好,在指定目录下会生成tomcat.keystore文件
3.转格式# keytool -importkeystore -srckeystore D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore -destkeystore D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore -deststoretype pkcs12  

image

2.为客户端生成证书

1.为浏览器生成证书,以便让服务器来验证它,为了将证书顺利导入IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成# keytool -genkey -v -alias mykey -keyalg RSA -keystore D:\WorkSoftWare\java\tomcat\HTTPS\mykey.p12
2.mykey为自定义,对应证书存放子“D:\WorkSoftWare\java\tomcat\HTTPS\mykey.p12”目录下,客户端的CN可以是任意值,双击mykey.p12文件,即可将证书导入到客户端(浏览器)
3.转格式# keytool -importkeystore -srckeystore D:\WorkSoftWare\java\tomcat\HTTPS\mykey.p12 -destkeystore D:\WorkSoftWare\java\tomcat\HTTPS\mykey.p12 -deststoretype pkcs12

image

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

1.由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证,由于不能直接将PKCS12格式的证书库导入,必选先把客户端证书导出为一个单独的CER文件,使用如下命令:# keytool -export -alias mykey -keystore D:\WorkSoftWare\java\tomcat\HTTPS\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\WorkSoftWare\java\tomcat\HTTPS\mykey.cer
2.mykey为自定义与客户端定义的mykey要一致,通过以上,客户端证书就被我们导出到D:\WorkSoftWare\java\tomcat\HTTPS\mykey.cer文件了

image

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

1.命令# keytool -import -v -file D:\WorkSoftWare\java\tomcat\HTTPS\mykey.cer -keystore D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore

image

5.查看证书库

1.通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书,# keytool -list -keystore  D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore

image

6.让客户端信任服务器证书

1.由于是双向SSL认证,客户端也要验证服务端证书。因此,必须把服务器证书添加到浏览器的“受信任的根证书颁发机构”,由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的cer文件,使用如下命令# keytool -keystore D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore -export -alias tomcat -file D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.cer 
2.通过以上命令,服务器证书被我们导出,到 D:\WorkSoftWare\java\tomcat\HTTPS\文件中,双击tomcat.cer。按照提示安装证书,将证书填入到“受信任的根证书颁发机构” 

7.配置tomcat

1.打开tomcat的conf/server.xml,在Connector附近添加<Connector port="8443"<!--使用Http11NioProtocol类 Tomcat提供了两个SSL实现,一个是JSSE实现,另一个是APR实现。Tomcat将自动选择使用哪个实现,即如果安装了APR则自动选择APR,否则选择JSSE。如果不希望让Tomcat自动选择,而是我们自己指定一个实现则可通过protocol定义,APR文件名为tcnative-1.dll。6.0里没这个dll文件,而7.0里有。换句话说,6.0默认使用JSSE实现,而7.0默认使用APR实现。弄明白缘由就好办了。由于习惯使用6.0的配置方式(即JSEE实现),因此只要把conf\server.xml里的protocol修改一下就行了-->protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" <!--开启ssl-->SSLEnabled="true" scheme="https" <!--安全的-->secure="true" <!--设置是否双向认证,默认是false,true代表双向认证-->clientAuth="true"<!--TLS认证-->sslProtocol="TLS" ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_RC4_128_MD5"<!--服务器证书文件路径--> keystoreFile="D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore"<!--服务器证书密码-->keystorePass="123456"<!--用来验证客户端证书的的根证书,此例子中就是服务器证书--> truststoreFile="D:\WorkSoftWare\java\tomcat\HTTPS\tomcat.keystore"<!--根证书密码-->truststorePass="123456"/>

8.验证

1.导入证书,在谷歌浏览器中搜索证书,找到管理证书,导入生成的mykey.p12文件

image

2.启动tomcat访问 https:localhost:8843
能看到以下结果即为成功

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20743.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Pytorch加载预训练模型及修改网络结构

Pytorch有自带的训练好的AlexNet、VGG、ResNet等网络架构。详见官网 1.加载预训练模型 import torch import torchvision import torch.nn as nn import torch.optim as optim import torch.nn.functional as F import torchvision.transforms as transforms import torchvis…

逆波兰式是什么?

1. 逆波兰式是什么&#xff1f; 逆波兰式&#xff0c;也称逆波兰记法&#xff08;Reverse Polish Notation&#xff0c;缩写为RPN&#xff09;&#xff0c;是一种在数学和计算机科学中用于表示算术表达式的方法。它的特点是操作符在操作数的后面&#xff0c;不需要括号来改变运…

DevOps基础服务2——Jenkins

文章目录 一、基本了解1.1 CI/CD介绍1.2 基于Docker的CI/CD 二、安装jenkins三、页面管理3.1 当前系统用户配置3.2 系统配置3.3 全局工具配置3.4 插件管理3.4.1 安装插件3.4.2 上传插件 3.5 用户设置3.6 查看日志3.7 汉化设置 一、基本了解 DEVOPS概念&#xff1a; DevOps是一种…

网络ping丢包什么原因(附解决方案)

​  数据包丢失是一种网络问题&#xff0c;当通过网络(或设备之间或通过 Internet)传输的数据包在传输过程中丢失或丢弃并且无法到达目的地时&#xff0c;就会发生这种情况。简单来说&#xff0c;数据包丢失是指数据包无法通过互联网从发送者成功传输到接收者。 如何检测数据…

LiveGBS流媒体平台GB/T28181功能-支持UDP、TCP被动、TCP主动模式流传输模式之间有什么区别?

LiveGBS流媒体平台-国标流媒体服务几种流传输模式UDP、TCP被动、TCP主动模式区别是什么 1、背景1、GB28181流传输模式1.1、UDP1.2、TCP 被动1.3、TCP 主动 2、切换流传输模式2.1、编辑2.2、下拉切换 3、搭建GB28181视频直播平台 1、背景 国标GB28181协议中&#xff0c;视频流到…

eNSP-VRRP虚拟路由器冗余技术

VRRP-虚拟路由器冗余技术 文章目录 VRRP-虚拟路由器冗余技术一、拓扑结构二、基本配置三、测试验证四、知识点详解1.VRRP路由器2.报文格式3.工作过程 一、拓扑结构 二、基本配置 R1: #配置ip <Huawei>sys [Huawei]sys r1 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip a…

Perl 7 - 使用 Perlbrew 管理perl 版本

文章目录 关于 Perlbrew安装 Perlbrew使用 perlbrew 安装/管理 perl 版本 关于 Perlbrew 官网&#xff1a;https://perlbrew.pl 相关文档&#xff1a; App::perlbrew https://metacpan.org/pod/App::perlbrew Perlbrew 是一个工具&#xff0c;用于管理您$HOME 目录(或您指定的…

嵌入式LinuxLED驱动开发实验

目录&#xff1a; 1. Linux下LED灯的驱动原理1.1. 地址映射1.1.1. 实际物理地址映射到虚拟地址的函数1.1.2. 内存访问函数 2.硬件原理图分析3. 实验程序编写3.1. 驱动程序编写3.2. 应用程序编写 4. 运行测试 1. Linux下LED灯的驱动原理 我们在裸机实验的时候&#xff0c;都是通…

【数据结构】红黑树

文章目录 红黑树1. 红黑树的概念2. 红黑树的性质3. 红黑树节点的定义4. 红黑树的结构5. 红黑树的插入操作 红黑树 1. 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个节点上增加一个存储位表示节点的颜色&#xff0c;可以是Red或者是Black。通过任何一…

【Docker】Docker的部署含服务和应用、多租环境、Linux内核的详细介绍

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

简化生活之让AI以指定格式输出

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 合集地址 今天京东也宣布即将发布了自己的大模型&#xff0c;那么使用AI大模型进行工作或者生活将是必不可少的步骤。 建立命令 AI大模型是一种生成式聊天对话模型&#xff0c;我们可以通过预先定义命令的方式…

HTML的Input(type)的属性都有哪些

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f33c;欢迎小伙伴们访问到博主的文章内容&am…