centos

Tomcat在CentOS中的SSL证书如何安装

小樊
46
2025-12-29 06:50:29
栏目: 云计算

在 CentOS 上为 Tomcat 安装 SSL 证书

一 准备与前置检查

二 安装步骤

  1. 上传证书
    • 将证书文件(如 domain.pfxdomain.jks)与 密码文件 上传到 Tomcat 配置目录,例如 $CATALINA_HOME/conf/ 或新建 $CATALINA_HOME/conf/cert/
  2. 编辑 server.xml
    • 打开 $CATALINA_HOME/conf/server.xml
    • 启用 HTTP→HTTPS 跳转(端口 80 的 Connector):
      <Connector port="80" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="443" />
      
    • 配置 HTTPS Connector 使用 443(推荐 NIO 模式):
      • 使用 PFX/PKCS12(多数证书包为此格式):
        <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true">
          <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/domain.pfx"
                         certificateKeystorePassword="YourPfxPassword"
                         certificateKeystoreType="PKCS12" />
          </SSLHostConfig>
        </Connector>
        
      • 使用 JKS(如你自行转换或证书商直接提供):
        <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true">
          <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/domain.jks"
                         certificateKeystorePassword="YourJksPassword"
                         type="RSA" />
          </SSLHostConfig>
        </Connector>
        
      • 若此前存在 AJP Connector,将其 redirectPort 改为 443
        <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="443" />
        
  3. 可选 全站 HTTP 自动跳转 HTTPS
    • $CATALINA_HOME/conf/web.xml<web-app> 结束标签前加入:
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>SSL</web-resource-name>
          <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
      </security-constraint>
      
  4. 重启 Tomcat
    $CATALINA_HOME/bin/shutdown.sh
    $CATALINA_HOME/bin/startup.sh
    
    或使用 systemd:sudo systemctl restart tomcat(按你的实际服务名调整)。

三 验证与常见问题

四 进阶与可选方案

0
看了该问题的人还看了