我正在使用 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没有加密和没有密码。