首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tomcat中使用虚拟主机将HTTP流量重定向到HTTPS

如何在Tomcat中使用虚拟主机将HTTP流量重定向到HTTPS
EN

Stack Overflow用户
提问于 2019-04-25 18:48:20
回答 1查看 176关注 0票数 1

我需要配置我的Tomcat 9服务器,以便将http重定向到https流量。

我试过:

  1. 为http端口使用连接器,并具有指向安全连接器的redirectPort属性。
  2. 在web.xml底部包括一个安全约束web.xml,它适用于其他不使用虚拟主机的Tomcat服务器

连接器

代码语言:javascript
复制
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector 
        port="443"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        secure="true"
        scheme="https" 
        maxThreads="200" 
        SSLEnabled="true" 
        maxSpareThreads="75" 
        maxHttpHeaderSize="8192" 
        acceptCount="100"  
        enableLookups="false" 
        disableUploadTimeout="true"
        defaultSSLHostConfigName="example1.com">
                        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
                        <SSLHostConfig hostName="example1.com">
                                        <Certificate 
                                        certificateKeystoreFile="www_example1_com.jks"
                                        certificateKeystorePassword="…” />
                        </SSLHostConfig>
                        <SSLHostConfig hostName="example2.com">
                                        <Certificate 
                                        certificateKeystoreFile="www_example2_com.jks"
                                        certificateKeystorePassword="…” />
                        </SSLHostConfig>
        </Connector>

安全约束

代码语言:javascript
复制
<security-constraint>
   <web-resource-collection>
      <web-resource-name>Entire Application</web-resource-name>
      <url-pattern>/*</url-pattern>
   </web-resource-collection>
   <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
</security-constraint>

server.xml中的主机配置

代码语言:javascript
复制
      <!-- example1.com -->
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" 
               directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

      <!-- example2.com -->
      <Host name="example2.com" appBase="website-webapps" unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" 
               directory="website-logs"
               prefix="website_access_log." 
               suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
EN

回答 1

Stack Overflow用户

发布于 2019-05-08 17:54:03

端口80不对我的服务器上的外部流量开放,所以重定向永远不会发生。http流量没有到达服务器。

这是通过添加允许请求到达端口80的入站规则来解决的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55855845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档