如何从 8080 端口自动重定向到 8443

如何从 8080 端口自动重定向到 8443

我正在使用 Ubuntu 14.04 和 apache-tomcat 版本 6。我更改了所有必要的内容,将端口从 8080 重定向到 8443,并且运行正常,但问题是两个 URL 都正常工作。我想自动重定向到 8443(https://本地主机:8443)当我们打开 8080(http://本地主机:8080) 是否有免费的 SSL CA(证书颁发机构)可用于加密服务器和用户之间的数据。

答案1

Tomcat 6.0 已过时,因此我假设您至少拥有 Tomcat 7(可在 Ubuntu 14.04 上使用)。基本上有三种方法可以强制重定向到HTTPS

  • <security-contraint>在所有应用程序的文件中添加web.xml。如果没有,请添加:
<security-constraint>
    <web-resource-collection>
        <web-resource-name>All</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

否则,将该部分添加<user-data-constraint>到现有的<security-constraint>

您还可以将前面的代码片段添加到conf/web.xml,但这可能会副作用:安全约束由最具体的 URL 模式选择。如果它们具有相同的 URL 模式,则合并它们:较少的限制性约束适用。例如,如果您/html/*conf/web.xml其中使用模式,它将与Tomcat 管理器的限制,您将能够登录 Tomcat Manager没有加密和没有密码。

  • 您可以使用重写阀: 看这个问题对于 Tomcat 7 或这个问题以获取更新版本。
  • 我个人建议使用反向代理,例如Nginx并对其执行重定向,而不是 Tomcat。很多问题和答案在此网站上了解如何操作。

相关内容