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
相关产品推荐
相关产品推荐

