温馨提示×

Debian下Tomcat的SSL配置步骤有哪些

小樊
43
2025-10-15 17:47:24
栏目: 云计算

1. 安装Tomcat
在Debian系统上,首先通过APT包管理器安装Tomcat(以Tomcat 9为例):

sudo apt update
sudo apt install tomcat9

安装完成后,Tomcat会自动启动,可通过systemctl status tomcat9验证状态。

2. 生成SSL证书
SSL证书用于加密通信,可选择自签名证书(测试环境)或CA颁发的证书(生产环境)。

  • 生成自签名证书(适用于测试):
    使用OpenSSL生成2048位的RSA私钥和有效期为365天的自签名证书:
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
      -keyout /etc/ssl/private/tomcat-selfsigned.key \
      -out /etc/ssl/certs/tomcat-selfsigned.crt
    
    执行过程中需填写证书信息(如国家、组织名称、域名等),**Common Name(CN)**需与服务器域名或IP一致(测试时可填localhost)。
  • 获取CA证书(适用于生产):
    通过Let’s Encrypt等CA获取免费证书,可使用Certbot工具自动化流程(后续步骤会提及)。

3. 配置Tomcat使用SSL
编辑Tomcat的主配置文件/etc/tomcat9/server.xml,找到并修改SSL连接器配置(通常位于文件末尾的</Service>标签前):

<Connector 
  port="8443" 
  protocol="org.apache.coyote.http11.Http11NioProtocol"
  maxThreads="150" 
  SSLEnabled="true"
  scheme="https" 
  secure="true">
  <SSLHostConfig>
    <Certificate 
      certificateKeystoreFile="/etc/ssl/private/tomcat-selfsigned.jks" 
      type="RSA" 
      certificateKeystorePassword="your_keystore_password"/>
  </SSLHostConfig>
</Connector>

关键参数说明

  • port:SSL监听端口(默认8443,可修改为443或其他端口);
  • certificateKeystoreFile:Java密钥库(JKS)文件路径,需包含证书和私钥;
  • certificateKeystorePassword:密钥库密码(若未设置,Tomcat默认使用changeit)。

注意:若使用自签名证书,需将其转换为JKS格式(Tomcat默认支持的密钥库类型):

sudo keytool -import -alias tomcat -file /etc/ssl/certs/tomcat-selfsigned.crt \
  -keystore /etc/ssl/private/tomcat-selfsigned.jks \
  -storepass your_keystore_password

(若私钥为单独文件,可使用openssl pkcs12命令将.key.crt合并为PKCS12格式,再转换为JKS)。

4. (可选)配置HTTP重定向到HTTPS
为强制所有流量使用HTTPS,需修改HTTP连接器并添加重定向规则:

  • 编辑/etc/tomcat9/conf/server.xml,找到默认的HTTP连接器(端口8080),添加redirectPort="8443"
    <Connector 
      port="8080" 
      protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443"/>
    
  • 编辑/etc/tomcat9/webapps/manager/META-INF/context.xml(或其他Web应用的context.xml),添加安全约束:
    <Context>
      <Valve className="org.apache.catalina.valves.RemoteIpValve"/>
      <SecurityConstraint>
        <WebResourceCollection>
          <WebResourceName>Protected Context</WebResourceName>
          <UrlPattern>/*</UrlPattern>
        </WebResourceCollection>
        <UserdataConstraint>
          <TransportGuarantee>CONFIDENTIAL</TransportGuarantee>
        </UserdataConstraint>
      </SecurityConstraint>
    </Context>
    
    保存后,所有访问http://your_server:8080的请求将自动跳转到https://your_server:8443

5. 重启Tomcat应用配置
修改配置文件后,需重启Tomcat服务使更改生效:

sudo systemctl restart tomcat9

可通过systemctl status tomcat9确认服务是否正常启动。

6. 验证SSL配置
打开浏览器,访问https://your_server_ip:8443(若配置了重定向,可直接访问http://your_server_ip:8080,会自动跳转)。

  • 若使用自签名证书,浏览器会显示安全警告(需手动信任证书);
  • 若使用CA证书,浏览器地址栏将显示锁图标,表示连接安全。

7. (可选)使用Let’s Encrypt获取免费CA证书
生产环境建议使用Let’s Encrypt等CA颁发的证书,可通过Certbot工具自动化流程:

  • 安装Certbot及Tomcat插件:
    sudo apt install certbot python3-certbot-tomcat
    
  • 获取并安装证书(替换your_domain.com为实际域名):
    sudo certbot --tomcat -d your_domain.com -d www.your_domain.com
    
  • Certbot会自动将证书配置到server.xml中,并重启Tomcat。

0