下面以 Debian + Tomcat(以 Tomcat 9 为例) 说明如何配置 HTTPS / SSL。
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 yourdomain.com
证书路径:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Let’s Encrypt 是 PEM 格式,Tomcat 需要 PKCS12:
sudo openssl pkcs12 -export \
-in fullchain.pem -inkey privkey.pem \
-out /etc/tomcat9/keystore.p12 -name tomcat
编辑配置文件:
sudo nano /etc/tomcat9/server.xml
找到并修改(或添加):
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/etc/tomcat9/keystore.jks"
certificateKeystorePassword="你的密码"
type="RSA" />
</SSLHostConfig>
</Connector>
✅ 若是 PKCS12:
certificateKeystoreType="PKCS12"
sudo ufw allow 8443
sudo systemctl restart tomcat9
访问:
https://服务器IP:8443
编辑 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 netstat -tlnp | grep 8443
Tomcat 启动日志:
sudo journalctl -u tomcat9
如果你用的是 Tomcat 8 / 10、Nginx 反代 Tomcat,或 Docker 环境,可以告诉我,我可以给你对应配置。