tomcat 配置 https

Tomcat 默认使用的是 http协议,可通过配置使其转换为https协议。

 

1、简单了解 HTTP 和 HTTPS

HTTP 是超文本传输网络协议,是一个客户端和服务器端请求和应答的标准。HTTP协议是以明文方式发送内容,不提供任何方式的数据加密。所以存在不安全性。为了保证安全性,在HTTP上加了SSL(安全套接层)形成了HTTPS协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

详细可以看HTTP与HTTPS的区别 。本文这不是重点。

2、简单了解Tomcat server.xml 配置文件

<Server> : 根目录,只有一个,可包含一个或多个 “Service”实例。提供指定的端口上监听shutdown命令。

<Service>: 是一个或多个 "Connectors"的集合,共享一个"Container"。一个service可包含多个connector ,但只有一个Engine。

<Connector>:接收客户端连接请求,创建Request和Response对象用于和请求端交换数据。

<Engine>:接收Connector传过来的请求并处理请求。

详细可看 详解Tomcat 配置文件server.xml    和  https://www.cnblogs.com/starhu/p/5599773.html

我们主要是 修改 <Connector> 中的参数,来使用https协议。

3、tomcat 配置 HTTPS

3.1 JDK自带的keytool工具来生成证书

在jdk安装的目录下bin目录执行命令

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

3.2 下面以tomcat7/8/9为例 修改配置文件

3.2.1 tomcat7 (7.0.92)

将下图红色部分 注释去掉,在加上 keystoreFile 与 keystorePass

该为如下:

 <Connector port="8081" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
			   keystoreFile="d:\tomcat.keystore"  
			   keystorePass="123456"/>

分别访问http://localhost:8080/  和  https://localhost:8081/ 

 

3.2.2 Tomcat8(8.5.37)

<!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
	<!-- 复制上面注释修改如下,开启 8081端口 https -->
	
	<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="d:\tomcat.keystore" certificateKeystorePassword="123456"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

3.2.3 Tomcat9(9.0.14)

 <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!-- 开启8081端口 https访问 -->
	
	<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="d:\tomcat.keystore" certificateKeystorePassword="123456"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值