https连接器
非对称性加密:A生成一份公私钥,将公钥交给需要进行数据传输的B,B发送数据时先用公钥对数据进行加密,然后发送给A,再由A使用私钥进行解密。
但存在漏洞即B如何确认公钥是由A提供的。因此需要一个第三方机构(CA机构,即证书授权中心)来进行保证。A先将公钥发送给CA机构,CA机构向A确认这是它所发的公钥后,会生成一份数字证书,证书里包含了CA的认证签名与B的公钥,A再将这个数据证书发送给B,此时B就可以根据CA的认证签名确认公钥来自于A。
HTTPS:
浏览器想要对数据加密后再发送给服务器,服务器首先会出示一份数字证书给浏览器,浏览器根据上面的公钥对数据加密,然后再发送给服务器。
因此,首先我们要做的事情就是生成一份数字证书。
数字证书:
在jdk1.4以后的版本上,包含了一个数字证书的生成工具——keytool。该工具位于<java_home>/bin/keytoo.exe目录下。
如果服务器已经配置好<java_home>,可以进行windows下的命令行窗口,输入命令:
keytool -genkey -alias tomcat -keyalg RSA
然后根据图片内容进行配置
此时再进入操作系统的用户下,通常是C:\Users\Administrator,会看到里面有一个文件.keystore。
可以输入命令对它进行查看:
keytool -list -keystore .keystore
将该文件复制粘贴到tomcat的conf目录下
打开server.xml文件,配置https连接器,进入如下配置
<Connector port="2019" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" keystorePass="******" />
其中:
port=2019,配置https连接的端口为2019,这个连接器接收到浏览器请求后,将向浏览器出示一份数字证书,浏览器利用数字证书里的公钥来进行加密。
keystoreFile="conf/.keystore",指明密钥库所在的文件路径。
keystorePass="******",指明密钥库的访问密码。
保存配置文件后启动tomcat。
此时,首先访问http通道的8080端口,是可以正常打开。
再访问https通道的2019端口,浏览器会提示不安全。这是由于证书是我们手工生成的,没有经过CA的认证,浏览器认为访问这个主机是不安全的。我们可以选择下面的高级,然后在里面点击继续前往即可。
此时的2019端口也可以正常访问
用户也可以选择安装数字证书,这样之后的访问都将不会再显示证书错误。具体方法这里不做赘述。
同时,如果tomcat配置了如上的https通道,最好是将http通道删除,否则位于webapp下面的项目,不仅可以被https通道访问,也可以被http通道访问,失去了我们配置https的意义。
如在webapp下有项目testweb,则它的访问路径http://localhost:2018/testweb和https://localhost:2019/testweb都是可以正常访问,唯一的不同在于后者进行了数据加密,前者没有加密。
https连接器的更多相关文章
- javaWeb https连接器
互联网加密原理 tomcat服务器启动时候会启动多个Connector(连接器),而Tomcat服务器的连接器又分为加密连接器和非加密连接器 .(一般我们使用http协议的是非加密,https的是加密 ...
- javaweb学习总结十八(软件密码学、配置tomcat的https连接器以及tomcat管理平台)
一:软件密码学 1:对称加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效 ...
- Confluence 6 代理和 HTTPS 设置连接器
很多用户选择将 Confluence 运行在反向代理的后面,同时还启用了 HTTPS.将你的的 Confluence 反向代理配置正确就显得非常必要了,并且能够避免后期在使用 Confluence 遇 ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- 软件密码和https协议
密码安全问题,一直是程序员最痛疼的问题,这一章主要的来说一下密码的安全,和怎么提高密码的安全,还有Tomcat的https协议. 密码对于一个程序的安全有多重要就不多说了,如果你做过银行系统的话,那么 ...
- Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...
- Tomcat 七 HTTP 连接器
摘要 本文尝试翻译Tomcat官方文档Apache Tomcat 7连接器,不足之处敬请指正.该文先介绍了Tomcat7 HTTP连接器的属性,包括:公共属性.标准实现.Java TCP套接字属性.B ...
- Spring Boot项目如何同时支持HTTP和HTTPS协议
如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一 ...
- springboot+https+http
http访问不安全,使用https相对好些. 参考网址:https://blog.csdn.net/bock1984/article/details/90116965 操作如下: 1. 使用JDK自带 ...
随机推荐
- zabbix的安装部署及自定义监控的实现
此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...
- js中 给json对象添加属性和json数组添加元素
js中 给json对象添加新的属性 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var obj={ &quo ...
- select 和epoll模型区别
1.select 和epoll模型区别 1.1.网络IO模型概述 通常来说,网络IO可以抽象成用户态和内核态之间的数据交换.一次网络数据读取操作(read),可以拆分成两个步骤:1)网卡驱动等待数据准 ...
- juqery 回车事件 回车操作 回车搜索
html <form class="search_wrap" method="post" action=""> <div ...
- python 字符类型
1.整型 int 短整型在window中是2**30--2**39 长整型 long 在python中不区分长短 2.浮点数 float 一般是小数 3.复数 4.boolen类型(布尔类型) 运算结 ...
- Telerik UI for ASP.NET AJAX控件汉化方法
Telerik UI for ASP.NET AJAX控件功能十分强大,但原版是英文界面的,不方便一些用户使用. 和.NET的其他控件一样,可以通过资源文件来制作多语言版本. 下面看看安装完成后原始的 ...
- 手写AVL 树(上)
平衡二叉树 左旋,右旋,左右旋,右左旋 具体原理就不说了,网上教程很多.这里只实现了建树的过程,没有实现删除节点的操作. 下一篇会实现删除节点的操作. // // main.cpp // AVL // ...
- Python 学习笔记1 安装和IDE
前面的话 现在随着互联网的快速发展,对测试人员的代码要求也越来越高.有种逐步往全栈开发人员发展的趋势. 越来越多的手工测试被自动化取代. 对于测试人员,学习一门开发语言迫在眉睫. C#, JAVA, ...
- stm32专属于菜鸟的学习方法
1.首先我们先看看与STM32相关的文档 我们假定大家已经对STM32的书籍或者文档有一定的理解.如不理解,请立即阅读STM32的文档,以获取最基本的知识点. 如果你手上拥有ST官方主推的STM32神 ...
- 最全的MonkeyRunner自动化测试从入门到精通(9)
最基本脚本功能开始编写(1)Monkeyrunner和Monkey的区别 1)Monkeyrunner工具在工作站上通过API定义的特定命令和事件控制设备或模拟器(可控) 2)精确控制事件之间的事件 ...