温馨提示×

debian tomcatssl如何配置

小樊
44
2026-09-21 17:29:59
栏目: 云计算

下面以 Debian + Tomcat(以 Tomcat 9 为例) 说明如何配置 HTTPS / SSL


一、准备 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 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

二、配置 Tomcat SSL(server.xml)

编辑配置文件:

sudo nano /etc/tomcat9/server.xml

1️⃣ 启用 HTTPS Connector

找到并修改(或添加):

<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

四、重启 Tomcat

sudo systemctl restart tomcat9

访问:

https://服务器IP:8443

五、强制 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>

六、常见问题

❌ 端口被占用

sudo netstat -tlnp | grep 8443

❌ 证书密码错误

Tomcat 启动日志:

sudo journalctl -u tomcat9

如果你用的是 Tomcat 8 / 10Nginx 反代 Tomcat,或 Docker 环境,可以告诉我,我可以给你对应配置。

0