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自带 ...
随机推荐
- I - The lazy programmer 贪心+优先队列
来源poj2970 A new web-design studio, called SMART (Simply Masters of ART), employs two people. The fir ...
- python中 requests 支持 socks代理
参考博客 https://zhengheng.me/2016/08/25/python-requests-socks5/
- SSH免密码登录配置
ssh免密码登录Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的解决方案 1.在hadoop目录 新建.ssh目录 使用:ssh ...
- Python学习之旅(九)
Python基础知识(8):集合 集合:由不同元素组成,无序的,不重复的序列 补充知识:可变类型:列表.字典:不可变类型:数字.字符串.元组 使用大括号{}或set()方法定义集合 se=set(&q ...
- Telerik UI for ASP.NET AJAX控件汉化方法
Telerik UI for ASP.NET AJAX控件功能十分强大,但原版是英文界面的,不方便一些用户使用. 和.NET的其他控件一样,可以通过资源文件来制作多语言版本. 下面看看安装完成后原始的 ...
- springboot+mybatis+druid数据库连接池
参考博客https://blog.csdn.net/liuxiao723846/article/details/80456025 1.先在pom.xml中引入druid依赖包 <!-- 连接池 ...
- sql中join与left-join图解区别
select a.* from YG_BRSYK a left join(SELECT DISTINCT SYXH, STUFF((SELECT '.'+MS FROM #lsb where SY ...
- ZOJ 4060 - Flippy Sequence - [思维题][2018 ACM-ICPC Asia Qingdao Regional Problem C]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4060 题意: 给出两个 $0,1$ 字符串 $S,T$,现在你有 ...
- 在ABP中使用linq
private IQueryable<MembershipEntity> SelectOrScrrenMember(GetMemberInput input) { string[] use ...
- 【UML】NO.54.EBook.6.UML.2.002-【Thinking In UML 大象 第二版】- UML 核心元素
1.0.0 Summary Tittle:[UML]NO.54.EBook.6.UML.2.002-[Thinking In UML 大象 第二版]- UML 核心元素 Style:DesignPat ...