You need to enable JavaScript to run this app. Tomcat 8 配置多个SSL连接器实现多服务HTTPS访问咨询
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 8 配置多个SSL连接器实现多服务HTTPS访问咨询

Tomcat多Service独立配置HTTPS连接器方案

配置核心逻辑

Tomcat中每个<Service>节点的连接器配置是完全独立的,只需要在每个Service下分别添加专属的HTTPS连接器,配置不同的监听端口即可满足需求。

具体配置步骤

1. 调整原有HTTP连接器的重定向端口

将两个Service下原HTTP、AJP连接器的redirectPort修改为对应Service专属的HTTPS端口,避免重定向冲突:

  • service-1的HTTPS端口可设置为8443(或443,需Tomcat运行权限支持1024以下端口)
  • service-2的HTTPS端口可设置为8444

2. 每个Service下添加HTTPS连接器

修改后的完整server.xml配置示例如下:

<Service name="service-1">
    <Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443"  maxThreads="300" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <!-- 新增service-1专属HTTPS连接器 -->
    <Connector connectionTimeout="20000"
        acceptCount="100" scheme="https" secure="true"
        port="8443" clientAuth="false" sslProtocol="TLS"  
        keystoreFile="PATH_TO_KEY_STORE"  
        keystorePass="KEY_STORE_PASS"  
        keyAlias="KEY_STORE_ALIAS"/>

    <Engine name="service-1" defaultHost="localhost" >
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>
    <Host name="localhost"  appBase="service-1"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    </Host>
  </Engine>
</Service>

<Service name="service-2">
  <Connector port="8181" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8444" maxThreads="300" />
  <Connector port="8099" protocol="AJP/1.3" redirectPort="8444" />
  <!-- 新增service-2专属HTTPS连接器 -->
  <Connector connectionTimeout="20000"
      acceptCount="100" scheme="https" secure="true"
      port="8444" clientAuth="false" sslProtocol="TLS"  
      keystoreFile="PATH_TO_SERVICE2_KEY_STORE"  
      keystorePass="SERVICE2_KEY_STORE_PASS"  
      keyAlias="SERVICE2_KEY_STORE_ALIAS"/>

  <Engine name="service-2" defaultHost="localhost">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>
    <Host name="localhost"  appBase="service-2"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    </Host>
  </Engine>
</Service>

配置说明

  • 如果两个服务使用同一个通配符证书或多域名证书,两个HTTPS连接器可以共用同一个keystore配置,无需单独准备证书文件
  • 若要HTTPS访问省略端口,可将service-1的HTTPS端口设置为443,此时访问地址为https://{public-ip}/service-1,service-2可根据需求保留端口或搭配反向代理实现无端口访问
  • 配置完成后需要开放服务器防火墙对应HTTPS端口的入站规则,确保外部可访问

访问地址

配置生效后两个服务的加密访问地址为:

  • service-1:https://{public-ip}:8443/service-1(若用443端口则省略端口)
  • service-2:https://{public-ip}:8444/service-2

内容的提问来源于stack exchange,提问作者mrboieng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 23:15:02