首页主机资讯Tomcat在CentOS中的SSL证书如何安装

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

时间2026-01-17 10:09:04发布访客分类主机资讯浏览982
导读:在 CentOS 上为 Tomcat 安装 SSL 证书 一 准备与前置检查 环境:CentOS 7/8/9,Tomcat 8.5/9,已安装 JDK 并配置好 JAVA_HOME。 证书:从证书服务商下载服务器类型为 Tomcat 的证...

在 CentOS 上为 Tomcat 安装 SSL 证书

一 准备与前置检查

  • 环境:CentOS 7/8/9,Tomcat 8.5/9,已安装 JDK 并配置好 JAVA_HOME
  • 证书:从证书服务商下载服务器类型为 Tomcat 的证书包(常见为 PFX/PKCS12,部分也提供 JKS;同时会提供 .txt 密码文件,且每次下载密码可能不同)。
  • 域名与网络:证书绑定的域名已正确 DNS 解析 到服务器;服务器防火墙与云厂商安全组已放行 TCP 443;若网站在 中国内地,需完成 ICP 备案
  • 连接测试:本地可用 ping yourdomain 验证解析;服务器上可用 ss -tlnp | grep ':443'nc -vz yourdomain 443 检查端口连通性。

二 安装步骤

  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(按你的实际服务名调整)。

三 验证与常见问题

  • 验证
    • 访问 https://yourdomain(默认端口 443 无需加端口),浏览器地址栏出现 锁形图标 表示成功;也可使用 curl -Iv https://yourdomain 查看证书链与握手信息。
  • 常见问题与排查
    • 端口未放行:在云安全组与系统防火墙(firewalld/iptables)放行 443/TCP;用 ss -tlnp | grep ':443'nc -vz yourdomain 443 复核。
    • 密码错误:PFX/JKS 的 密码文件与证书一一对应,重新下载会生成新密码,需同步更新配置。
    • 证书格式不匹配:若拿到的是 PEM 证书链 + 私钥,可转换为 PKCS12 再配置:
      openssl pkcs12 -export \
        -in server.crt -inkey server.key \
        -out domain.pfx -name tomcat \
        -CAfile chain.crt -caname root
      
      然后在 Connector 中使用 certificateKeystoreType="PKCS12" 指向该 .pfx
    • HTTP 未跳转:确认 80 端口 Connector 的 redirectPort=443 已设置,且应用或 web.xml< transport-guarantee> CONFIDENTIAL< /transport-guarantee> 生效。
    • 域名不匹配或证书未签发:证书需对访问域名有效(含精确域名与通配符匹配规则),状态需为 已签发

四 进阶与可选方案

  • APR/OpenSSL 引擎(可选):若追求更高性能,可启用 APR 模式并配置本地 OpenSSL,示例:
    <
        Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true">
        
      <
        SSLHostConfig>
        
        <
        Certificate certificateKeyFile="conf/server.key"
                     certificateFile="conf/server.crt"
                     certificateChainFile="conf/chain.crt"
                     type="RSA" />
        
      <
        /SSLHostConfig>
        
    <
        /Connector>
        
    
    需安装 tomcat-native 与 OpenSSL 依赖,按官方文档编译启用。
  • 使用 RewriteValve 做跳转(可选):在 server.xml< Host> 内加入重写阀并配置规则,可实现更灵活的跳转逻辑(适合复杂场景)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Tomcat在CentOS中的SSL证书如何安装
本文地址: https://pptw.com/jishu/782679.html
apache2如何自定义centos错误页面 apache2在centos上的性能瓶颈

游客 回复需填写必要信息