tomcat - 将非 SSL 流量正确重定向到 SSL 流量

标签 tomcat redirect ssl web tuckey-urlrewrite-filter

我的 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/

相关文章:

java - 在 eclipse Juno 中发布 Tomcat 6 时出错

java - eclipse tomcat : take the classpath from the project

java - Tomcat6 没有部署我的 webapp

linux - 从错误中复制最后一个词并输入到下一个命令

asp.net - 在 ashx 处理程序的代码中强制执行 SSL

spring-boot - 如何在 application.yaml 中为 ssl 客户端指定 keystore 和信任库?

java - 无法在jsp上显示希伯来文字符

php - 重定向和更改单个 URL 段

url - 重定向到Portlet中的外部网站

ssl - Facebook 在 IE7 和 IE8 中通过 HTTPS/SSL 安全警告评论小部件