非对称性加密: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连接器的更多相关文章

  1. javaWeb https连接器

    互联网加密原理 tomcat服务器启动时候会启动多个Connector(连接器),而Tomcat服务器的连接器又分为加密连接器和非加密连接器 .(一般我们使用http协议的是非加密,https的是加密 ...

  2. javaweb学习总结十八(软件密码学、配置tomcat的https连接器以及tomcat管理平台)

    一:软件密码学 1:对称加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效 ...

  3. Confluence 6 代理和 HTTPS 设置连接器

    很多用户选择将 Confluence 运行在反向代理的后面,同时还启用了 HTTPS.将你的的 Confluence 反向代理配置正确就显得非常必要了,并且能够避免后期在使用 Confluence 遇 ...

  4. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  5. 软件密码和https协议

    密码安全问题,一直是程序员最痛疼的问题,这一章主要的来说一下密码的安全,和怎么提高密码的安全,还有Tomcat的https协议. 密码对于一个程序的安全有多重要就不多说了,如果你做过银行系统的话,那么 ...

  6. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  7. Tomcat 七 HTTP 连接器

    摘要 本文尝试翻译Tomcat官方文档Apache Tomcat 7连接器,不足之处敬请指正.该文先介绍了Tomcat7 HTTP连接器的属性,包括:公共属性.标准实现.Java TCP套接字属性.B ...

  8. Spring Boot项目如何同时支持HTTP和HTTPS协议

    如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一 ...

  9. springboot+https+http

    http访问不安全,使用https相对好些. 参考网址:https://blog.csdn.net/bock1984/article/details/90116965 操作如下: 1. 使用JDK自带 ...

随机推荐

  1. Linux 的基本操作(系统的安装)

    操作系统的安装: 操作系统的安装 这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux ...

  2. 用 ArrayList 集合调用商品类

    public class  Commodity{ //定义商品类 String name; //定义商品名字 double  size;  //定义商品尺寸 double  price; //定义商品 ...

  3. vue 项目总结

    第一次参与设计前端项目 项目接近尾声,抽出时间写一下总结 项目用到技术 vue vue-cli (代理配置) element-ui axios router 技术应用思路 vue 组件封装---技术点 ...

  4. RFID系统 免费开源代码 开发,分享[申明:来源于网络]

    RFID系统 免费开源代码 开发,分享[申明:来源于网络] 地址:http://www.codeforge.cn/s/0/RFID%E7%B3%BB%E7%BB%9F

  5. Chrome扩展程序——TabCopy:一键复制网页标题和网址

    Chrome扩展程序——TabCopy:一键复制网页标题和网址 - Erik_ly的博客 - CSDN博客 https://blog.csdn.net/u012318074/article/detai ...

  6. ExceptionLess使用

    1.os使用windows server 2012,省的升级iis express-iis 8(测试环境是IIS Express 8,生产环境IIS 7.5).PowerShell 3+了. 2.wi ...

  7. Manjaro 玩机记录

    需求: 物理机使用linux个人版本系统,最好支持 微软office QQ/Tim 等通讯软件, 软件易安装, 图形界面可修改, 具有多个多个开发环境如:python2 python3 gcc nod ...

  8. 深入理解Spring AOP之二代理对象生成

    深入理解Spring AOP之二代理对象生成 spring代理对象 上一篇博客中讲到了Spring的一些基本概念和初步讲了实现方法,当中提到了动态代理技术,包含JDK动态代理技术和Cglib动态代理 ...

  9. java八大数据类型

    基本数据类型以值传递的方式进行传递,String以值传递的方式传递,其他的以地址的方式进行传递 分别是:byte  short  int  long  float  double char boole ...

  10. Django基本配置与URLconf

    what's the Django python的框架主要有:Django.Flask.Tornado Django是一个开放源代码的Web应用框架,由Python写成.它的主要特点是大而全,我们需要 ...