我在我们的域上部署了一个带有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
]
我希望这会有所帮助。
答案 0 :(得分:0)
url-rewrite
只能在请求到达服务器后运行。 TLS握手(包括向客户端提供其证书的服务器)是客户端(浏览器)检查服务器证书以查看其主机名是否匹配的位置。如果它不匹配,浏览器将向用户显示错误。
只有几种方法可以避免这种情况:
www.domain-name.com
)domain-name.com
www.domain-name.com
的证书
<强>更新强>
您的TLS证书中有主题替代名称?如果是这样,浏览器不应该抱怨主机名。
<强>更新强>
错误消息是:
攻击者可能试图从domain-name.com窃取您的信息(例如,密码,邮件或信用卡).NET :: ERR_CERT_COMMON_NAME_INVALID
高级:
此服务器无法证明它是domain-name.com;其安全证书来自delink.de。这可能是由于配置错误或攻击者拦截您的连接造成的。
您的路由器正在对您与服务器的通信执行中间人攻击。您的服务器配置正确(我检查过:它很好)。您应该禁用路由器上的任何代理或其他类似功能,并让它在不干扰您的情况下上网。