在 tomcat 中强制 http 连接转换为 https

在 tomcat 中强制 http 连接转换为 https

我正在尝试强制连接到http://localhost:8443https://localhost:8443如果他们转到 ,网站将正常运行https://localhost:8443。如果用户忘记了s在 https 中我希望 tomcat 能够为他们纠正这个问题。

我只有一个用于 https 的连接器,定义为:

<Connector port="8443" rediretPort="8443"
    protocol="HTTP/1.1" 
    connectionTimeout="20000" 
    SSLEnabled="true"
    maxThreads="150" 
    scheme="https" 
    secure="true"
    clientAuth="false" 
    sslProtocol="TLS" 
    keyAlias="alias"
    keystoreFile="keystore.jks"
    keypass="PASSWORD"
/>

这是在 Windows 服务器上。Tomcat 6 是一个独立服务器(未连接到 IIS)。

我尝试修改 web.xml 以包含以下内容:

<security-constraint>
 <web-resource-collection>
    <web-resource-name>Protected Context</web-resource-name>
      <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>

这对我来说不起作用。据我所知,这会将用户从重定向http://localhost:8080https://localhost:8443(如果连接器 8080 定义了重定向端口如 8443)。

我不确定这是否可以通过独立的 Tomcat 服务器实现。我知道使用 apache mod_rewrite 或其他类似解决方案可以实现,但我不想在 Windows 机器上安装任何其他服务。

答案1

当你的第一句话不是拼写错误时,只需在端口 8080 上添加一个 http 连接器,并按照你的描述添加重定向。你不能让 http 和 https 监听同一个端口。所以让 http 监听端口 8080,让 https 监听端口 8443。

相关内容