Tomcat 配置 SSL 后,就能用 https:// 域名 安全访问,支持加密传输。我给你最简单、最实用、生产环境可用的两种方案:
- JKS 证书(自带 keytool 生成,测试用)
- PFX 证书(阿里云 / 腾讯云 / Let’s Encrypt 申请,正式环境用)
配置文件都是:
conf/server.xml一、先看最终效果(配置完长这样)
xml
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="conf/localhost.jks" <!-- 证书文件 -->
keystorePass="123456" <!-- 证书密码 -->
sslProtocol="TLS"
clientAuth="false"
/>
二、方案 1:测试环境 SSL(自签名证书,5 分钟搞定)
适合本地开发、测试使用。
1. 生成证书
进入 Tomcat 的
conf 目录,执行命令:bash
运行
keytool -genkey -alias tomcat -keyalg RSA -keystore localhost.jks -validity 3650
按提示输入:
- 密码:
123456 - 其他信息一路回车即可
最终在
conf 下生成:localhost.jks2. 配置 server.xml
找到 8443 那段 Connector,替换成:
xml
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="conf/localhost.jks"
keystorePass="123456"
keystoreType="JKS"
sslProtocol="TLS"
/>
3. 重启 Tomcat 即可访问
plaintext
https://localhost
三、方案 2:生产环境 SSL(阿里云 / 腾讯云 PFX 证书)
企业正式环境 99% 用这种!
1. 准备证书
从证书服务商下载 Tomcat 版证书,得到:
- xxx.pfx(证书文件)
- 密码.txt(证书密码)
把
xxx.pfx 放到 Tomcat/conf/ 下2. 配置 server.xml(最标准写法)
xml
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="conf/你的证书.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
sslProtocol="TLS"
clientAuth="false"
/>
3. 重启 Tomcat
plaintext
https://你的域名
四、必做:HTTP 自动跳转 HTTPS(非常重要)
让用户访问
http:// 自动跳 https://1. 打开 conf/web.xml
在文件最后
</web-app> 前面添加:xml
<security-constraint>
<web-resource-collection>
<web-resource-name>HTTPS</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
2. 确保 8080 端口配置 redirectPort="443"
xml
<Connector port="8080" redirectPort="443" />
完成后:
访问 http://域名 → 自动跳 https://域名
五、SSL 配置常见问题
-
端口 443 无法启动
Linux 需要 root 权限(1024 以下端口需要管理员)
-
浏览器提示不安全
自签名证书会提示,必须用正规 CA 证书(阿里云免费证书即可)
-
证书路径错误
用相对路径:
conf/xxx.pfx或绝对路径:
D:/tomcat/conf/xxx.pfx -
密码错误
PFX 密码在下载的密码文件里,不要手动输错
六、最简单的完整模板(直接复制)
xml
<!-- HTTP 自动跳转 HTTPS -->
<Connector port="80" redirectPort="443" />
<!-- HTTPS SSL 配置 -->
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="conf/cert.pfx"
keystoreType="PKCS12"
keystorePass="123456"
sslProtocol="TLS"
/>
总结
- Tomcat SSL 配置文件:conf/server.xml
- 测试用:JKS 证书
- 生产用:PFX 证书(PKCS12)
- 必须开启:HTTP 自动跳转 HTTPS
- 正式端口:443