Apache tomcat:永久重定向无法正常工作

时间:2015-10-28 10:02:39

标签: java maven tomcat ssl url-rewriting

我在我们的域上部署了一个带有https的WAR文件。目前,问题是如果我点击域名以下:

https://www.domain-name.com
domain-name.com

然后我没有问题,但是一旦我尝试:

https://domain-name.com

我收到不受信任的连接错误。为此,我决定在WEB-INF文件夹中添加urlrewrite.xml文件,并在web.xml中添加以下设置:

urlrewrite.xml:

<urlrewrite>
    <rule>
        <from>https://domain-name.com</from>
        <to>https://www.domain-name.com</to>
    </rule>
</urlrewrite>

我在web.xml中添加了这个:

 <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

POM.xml中的依赖关系:

   <!-- URL redirect dependency -->
        <dependency>
            <groupId>org.tuckey</groupId>
            <artifactId>urlrewritefilter</artifactId>
            <version>4.0.4</version>
        </dependency>

不幸的是,它没有帮助。我该如何解决这个问题?你能帮忙的话,我会很高兴。

修改

请注意,如果网址与www.domain-name.com匹配,我检查了证书。这是我在密钥库中找到的:

#8: ObjectId:IDCriticality=false
SubjectAlternativeName [
  DNSName: domain-name.com
  DNSName: www.domain-name.com
]

我希望这会有所帮助。

1 个答案:

答案 0 :(得分:0)

url-rewrite只能在请求到达服务器后运行。 TLS握手(包括向客户端提供其证书的服务器)是客户端(浏览器)检查服务器证书以查看其主机名是否匹配的位置。如果它不匹配,浏览器将向用户显示错误。

只有几种方法可以避免这种情况:

  1. 切勿在网址中使用裸域名(例如,始终使用www.domain-name.com
  2. 获取&#34;主题替代名称&#34;除了主要主题名称domain-name.com
  3. 之外,还添加了www.domain-name.com的证书
  4. 获取#34;通配符&#34; TLS证书
  5. <强>更新

    您的TLS证书中有主题替代名称?如果是这样,浏览器不应该抱怨主机名。

    <强>更新

      

    错误消息是:

         

    攻击者可能试图从domain-name.com窃取您的信息(例如,密码,邮件或信用卡).NET :: ERR_CERT_COMMON_NAME_INVALID

         

    高级:

         

    此服务器无法证明它是domain-name.com;其安全证书来自delink.de。这可能是由于配置错误或攻击者拦截您的连接造成的。

    您的路由器正在对您与服务器的通信执行中间人攻击。您的服务器配置正确(我检查过:它很好)。您应该禁用路由器上的任何代理或其他类似功能,并让它在不干扰您的情况下上网。