一、准备:
1、Tomcat版本要求:Tomcat8.5 就是支持Http2协议的规范的,现在Tomcat新版本是9。
2、前置知识:要支持Https(简单理解就是 Http + SSL/TLS),需要去生成证书才可以。证书生成工具有很多,有商用的有开源免费的,免费的比如有OpenSSL
和JDK自带的工具
等。以下我演示用JDK自带
工具和OpenSSL工具生成证书。推荐:使用OpenSSL生成免费证书
。
为了实现 SSL,就要生成证书。此证书由其所有者在密码上签名,因此其他人很难伪造。证书无需警告即可在访问者浏览器中工作,需要由受信任的第三方签名。这些称为证书机构(CAS)
。要获得签名证书,您需要选择 CA 并按照您选择的 CA 提供的说明获取证书。提供一系列 CA,包括一些免费提供证书的 CA。
Java 提供了一个相对简单的命令行工具,称为"自签名"证书。自签名证书只是用户生成的证书,尚未由知名 CA 签署,因此根本不保证真实。虽然自签名证书可用于某些测试方案,但它们并不适合任何形式的生产用途。keytool
.
其他知识我就不在这儿多说。下面开始在 windows 上和 Linux 双系统上搭建支持Https 和 Http2。
Tomcat 官方文档:https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html
3、准备:
(1)Java环境;
(2)下载Tocmat执行包(带有bin、lib、conf目录);
(3)假如你要使用OpenSSL生成证书的话,就去官方下载并上传到Linux上。
OpenSSL官网下载:https://www.openssl.org/source/
注意:以下配置只适合学习使用!
二、windows系统上配置–JDK工具
1、再Tocmat根目录下的 conf 文件夹下创建一个名为 key 的文件夹;
2、win + R --> cmd,直接执行JDK工具生成证书,命令如下,您复制对文件路径做适当的修改;
keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\wh-server-806\wh-server\conf\key\wh-server.keystore -validity 36500
其中:E:\wh-server-806\wh-server\conf\key\wh-server.keystore 为tomcat根目录下的conf下的key的路径
wh-server.keystore是一会生成证书的存放文件,您可以修改文件名,后缀不能变。
36500:指的是证书有效期限,默认是90天。单位:天
设置密码不得少于6位
3、配置 tomcat 的 conf/server.xml文件;
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
SSLEnabled="true"
scheme="https"
secure="true"
clinetAuth="false"
sslProtocol="TLS"
keystoreFile="