Tomcat 开启基于 HTTPS 的 SSL 配置
在互联网时代,安全性问题变得越来越重要,为了保护用户的隐私和数据,越来越多的网站开始使用 HTTPS 协议。Tomcat 作为一个流行的 Java Web 服务器,当然也支持 HTTPS 协议。那么,如何在 Tomcat 中开启基于 HTTPS 的 SSL 配置呢?
一、环境准备
为了成功配置 HTTPS,需要具备以下环境:
* Java JDK
* Tomcat
二、SSL 证书简介
要想使用 HTTPS,我们需要有 SSL 证书。证书可以通过两个渠道获得:
1. 公开可信认证机构,例如 CA,但是申请一般是收费的,一般几百到几千一年。
2. 自己生成,虽然安全性不是那么高,但胜在成本低。
目前证书有以下常用文件格式:
* JKS(.keystore)
* 微软(.pfx)
* PEM(.key + .crt)
其中,Tomcat 使用 JKS 格式,Nginx 使用 PEM 格式。
三、JKS 格式证书生成
好了,我们的 JDK 要派上用场了!打开你的终端或者命令行或者其他黑窗口,输入:
```
keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore
```
其中:
* alias:别名,这里起名 testKey
* keyalg:证书算法,RSA
* validity:证书有效时间,10 年
* keystore:证书生成的目标路径和文件名,替换成你自己的路径即可
回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他的随便填即可。
四、Tomcat 配置 HTTPS
1. 把 keystore 证书上传到你的 Tomcat 服务器上(如果你的 Tomcat 在本地,那么不移动也可以),并记下证书所在路径。
2. cd 到 Tomcat 的 conf 目录下,打开 server.xml 文件,搜索 HTTPS 找到下面这项:
```
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="你的 keystore 路径" keystorePass="生成证书时的口令" />
```
其中:
* port:HTTPS 的端口,默认 8443
* clientAuth:设置是否双向验证,默认为 false,设置为 true 代表双向验证
* keystoreFile:keystore 证书的路径
* keystorePass:生成 keystore 时的口令
五、启动 Tomcat
启动 Tomcat,然后就可以使用 HTTPS 和 8443 端口访问你的服务了!
配置 Tomcat 的 HTTPS 需要具备 SSL 证书,生成 JKS 格式证书,并在 Tomcat 中配置 HTTPS。这样,我们就可以使用 HTTPS 协议,保护用户的隐私和数据。