我的 Tomcat 服务器有问题。
当我在 http://beluka.net 上访问我的网站时,我收到一条安全警告,我想将其删除。我宁愿将用户重定向到 https://www.beluka.net。我想问题是我在 web.xml 文件中的安全约束使 http://beluka.net重定向到 https://beluka.net
<security-constraint>
<web-resource-collection>
<web-resource-name>ROOT</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
我还有一个有效的重写规则,它将所有非 www 流量重定向到 www 流量,这工作正常,但问题是我的重写规则在我接受安全警告后才被遵循。
如何在 http://beluka.net 的 web.xml 安全约束中打开一个“漏洞”?
我的重写规则(使用 tuckey)是
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<!--
Configuration file for UrlRewriteFilter
http://www.tuckey.org/urlrewrite/
-->
<urlrewrite>
<rule>
<name>Primary Domain Name Check</name>
<condition name="host" operator="notequal">www.beluka.net</condition>
<from>^(.*)</from>
<to type="permanent-redirect">https://www.beluka.net$1</to>
</rule>
</urlrewrite>
最佳答案
有几种方法可以做到这一点。
一个是为 beluka.net 创建一个新的虚拟主机,并部署一个简单的 Web 应用程序,将每个请求重定向到 www.beluka.net。这样请求 http://beluka.net将被重定向到 http://www.beluka.net然后到https://www.beluka.net并且您不会收到不匹配的主机警告。
另一种方法是使用 SAN 为 beluka.net 重新订购您的证书。这样您的证书将对 beluka.net 和 www.beluka.net 有效
可能还有其他方法可以做到这一点。
关于tomcat - 将非 SSL 流量正确重定向到 SSL 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24282740/