Tomcat服务器如何配置ssl证书
作者:Java求道者
本文介绍了如何在Tomcat服务器上下载并配置SSL证书,以及如何设置HTTP自动跳转至HTTPS,确保Web应用的安全性,首先,需将已签发的SSL证书文件放入Tomcat的cert文件夹,并修改server.xml配置文件,设置keystoreFile和keystorePass
一:证书配置
下载已签发的证书、选择 Tomcat 版本
- 进入 Tomcat 目录创建个
cert
文件夹 - 将下载好的
SSL
证书压缩包里的文件、拷进cert
文件夹。 - 找到安装
Tomcat
目录下在conf
文件夹中的server.xml
文件。
找到如下代码
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
然后再下方添加如下代码
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/www.itmrhuang.com.pfx" keystoreType="PKCS12" keystorePass="xuhay76l" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
keystoreFile
:cert文件夹下的 .pfx 文件。keystorePass
:cert文件夹下 pfx-password.txt 文件里的内容。- 其他不用动
最后 重启 Tomcat 即可通过 HTTPS 进行访问。
(确保服务器安全组确认已开启 443 端口,如果已经安装了宝塔面板的话,也得在宝塔里面开启安全组443端口)
二:Tomcat配置 http自动跳转 https
注意:
在 server.xml
中不能写中文注释
,不然编译不通过,就很离谱!!!
首先确保上面配置后,https能够正常访问后,在进行配置 http自动转https
开始:
1:在 server.xml 文件的 <Host> 标签内,添加一个新的 <Valve> 以启用重定向。
添加以下配置:
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
这将启用 URL 重写功能。
2:在 Tomcat 的 conf 目录中,创建一个名为 rewrite.config
的文件,用于配置重写规则。
接着在 rewrite.config 文件中,添加以下内容:
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这段配置表示,如果请求是通过非 HTTPS 发起的,将其重定向到对应的 HTTPS URL。
3:保存所有更改,然后重新启动 Tomcat 以应用新配置。
完成以上步骤后,当客户端通过 HTTP 访问您的 Web 应用程序时,它将被自动重定向到相应的 HTTPS URL
附录:
其实我已经配置cdn,并且在ssl证书服务里面,点击部署,将ssl证书部署到了cdn上,理论上来说就不必再tomcat服务这边再配置了,因为你既然配置分发网络服务,那么咱们所有访问理应通过cdn节点,但是感觉貌似不好使,会遇到一些意想不到的问题(要么浏览器缓存问题,要么本地缓存问题,要么本地网络与dns缓存需要清理,要么....),头疼,然后索性在tomcat服务器上配置 ssl
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。