当前位置: 首页 > 知识库问答 >
问题:

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

呼延原
2023-03-14

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

我尝试过:

> < li>

对http端口使用连接器,并具有指向安全连接器的redirectPort属性。

在web.xml底部包括一个安全约束链接,它适用于其他不使用虚拟主机的Tomcat服务器

连接器

<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>

安全约束

<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>

服务器中的主机配置.xml

      <!-- 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>
    < Li > https://example 2 . com-Works < Li > https://www . example 2 . com-Works < li>www.example2.com -不工作 < li>example2.com -不工作

共有1个答案

夏立果
2023-03-14

端口80对我服务器上的外部流量不开放,因此重定向永远不会发生。超文本传输协议流量没有到达服务器。

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

 类似资料:
  • 我知道这个问题已经被问过很多次了。然而,我似乎无法将其用于我的场景。 我想将所有 http 流量重定向到 https,并将 https 根重定向到登录页面。这是我在 vhost.conf 文件中的虚拟主机。 https根登录重定向工作正常。但是,我无法让超文本传输协议https重定向工作。我尝试了各种建议,如; 根据这里的各种帖子。但是其中一些不起作用,在一些建议中,有评论提到查询字符串不适用于变

  • 我正在尝试将所有http流量重定向到https。我尚未在服务器上安装SSL证书,并且正在使用cloudflare灵活SSL选项。 以下代码工作文件 但这让http://www.example.com转向了https://example.com 但是当我添加这个 重定向所有非www网址,如http://example.com到https://example.com 网站没有加载,并给我一个错误,说浏

  • Chrome版本:67.0.3396.87 Web服务器:Apache 当我击中http://www.assignmenthelpdesk.local,它将重定向到https://www.assignmenthelpdesk.local/ 如何阻止MAMP重定向到https?提前感谢。 /Applications/MAMP/conf/apache/extra/httpd vhosts。详情如下:

  • 我正在本地计算机上编写一个php应用程序,并想测试SSL是否正常工作。请耐心等待,因为这是我第一次使用SSL。 到目前为止,这就是我所做的: Created a SSL Certificate. I followed the first part of this this tutorial to create the certificate. I imported the file into ch

  • 我有一个正在运行的tomcat应用程序,它已经具有以下从HTTP到HTTPs的重定向规则: 是否可以添加一个例外/规则,将特定的http request(http://www . example . com)重定向到另一个特定的地址,并指定一个端口(比如https://www . example . com:8443/test),而不更改/删除上述连接器?

  • 在我的apache服务器上,我希望能够将所有传入的http请求重定向到等效的https请求。问题是,我希望能够在不指定的情况下为我的默认虚拟主机执行此操作,并使用请求url中出现的任何服务器名称进行重定向。我希望得到这样的东西: 这是可以使用还是我必须求助于?