温馨提示×

debian tomcat怎样配ssl

小樊
37
2026-09-27 17:35:21
栏目: 云计算

在 Debian 上给 Tomcat 配置 SSL(HTTPS),常见做法有两种:

  1. Tomcat 直接配置 SSL(推荐简单场景)
  2. Nginx / Apache 做反向代理,SSL 在代理层(生产更常见)

下面先讲 Tomcat 原生配置 SSL(Debian + Tomcat 9/10 为例)。


一、准备 SSL 证书

方式 1:使用自签名证书(测试用)

sudo keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 \
  -keystore /etc/tomcat9/keystore.jks -validity 365

按提示输入密码和信息。

方式 2:使用正式证书(Let’s Encrypt)

sudo apt install certbot
sudo certbot certonly --standalone -d example.com

证书位置:

/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

转换为 Tomcat 用的 PKCS12:

sudo openssl pkcs12 -export \
  -in fullchain.pem -inkey privkey.pem \
  -out /etc/tomcat9/tomcat.p12 -name tomcat

二、修改 Tomcat 的 server.xml

编辑配置文件:

sudo nano /etc/tomcat9/server.xml

1️⃣ 启用 HTTPS Connector

找到并修改(或取消注释):

<Connector port="8443" protocol="HTTP/1.1"
           SSLEnabled="true"
           scheme="https" secure="true"
           keystoreFile="/etc/tomcat9/keystore.jks"
           keystorePass="你的密码"
           clientAuth="false"
           sslProtocol="TLS" />

如果是 PKCS12 证书:

keystoreType="PKCS12"
keystoreFile="/etc/tomcat9/tomcat.p12"

2️⃣(可选)强制 HTTP 跳 HTTPS

编辑 web.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>

三、重启 Tomcat

sudo systemctl restart tomcat9

访问测试:

https://服务器IP:8443

四、常见问题

✅ 防火墙开放端口

sudo ufw allow 8443

✅ 权限问题

sudo chown tomcat:tomcat /etc/tomcat9/*.jks
sudo chmod 600 /etc/tomcat9/*.jks

✅ 查看日志

sudo journalctl -u tomcat9

五、生产推荐方案(简要)

Nginx + Tomcat

  • Nginx 处理 SSL
  • Tomcat 只跑 HTTP(8080)
  • 性能 & 维护更好

如果你需要,我可以:

  • 给你 Nginx + Tomcat SSL 完整配置
  • 帮你 申请 Let’s Encrypt 自动续期
  • 针对 Tomcat 10 / 11 给示例

你现在是测试环境还是生产服务器?用的 Tomcat 几?

0 踩