在 Debian 上给 Tomcat 配置 SSL(HTTPS),常见做法有两种:
下面先讲 Tomcat 原生配置 SSL(Debian + Tomcat 9/10 为例)。
sudo keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 \
-keystore /etc/tomcat9/keystore.jks -validity 365
按提示输入密码和信息。
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
编辑配置文件:
sudo nano /etc/tomcat9/server.xml
找到并修改(或取消注释):
<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"
编辑 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>
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
如果你需要,我可以:
你现在是测试环境还是生产服务器?用的 Tomcat 几?