5

我们使用 IIS 6 和 ASP.Net,当用户使用

https://somesite.com/securePage.aspx

用户收到错误:


错误代码:ssl error bad cert domain


证书颁发给www.somesite.com,表明somesite.com使用了无效的安全证书。

我希望能够在 Application BeginRequest 事件中捕获请求,但在此之前发生 SSL 错误。为了调用 Application BeginRequest 事件,用户需要单击证书错误消息。是否可以在代码中重定向或者是否需要在 IIS 中进行此修复?

4

6 回答 6

6

唯一的解决方案是在证书中包含带有 SubjectAlternativeName 的第二个域。一些证书颁发机构将允许您这样做而无需额外费用。

其他一切只会在建立 ssl 连接后发生,因此用户遇到错误后才会发生。

使用 HTTPS,在将任何 HTTP 标头发送到服务器之前协商 ssl 连接,包括告诉服务器请求实际针对哪个虚拟主机的 Host:-header。

于 2008-11-09T01:17:51.843 回答
1

我能够使用 IIS 的重写功能解决这个问题。事实证明它真的很容易修复,我们不必购买新证书。

于 2014-08-15T18:41:59.867 回答
0

HOP 的回答是正确的。如果我们有幸使用 IIS 7 作为类似于 Apache 的 mod_rewrite 规则的重写规则,Owen 也可以在 IIS 中使用。

今天与我们的网络管理员和我们的 SSL 证书提供商一起进一步调查后,将 SAN 应用到我们的证书是完全可能的,而且是免费的。

然而,由于 ORG 内部的政治问题,决定 DEV(我的小组)在 Application BeginRequest 事件中重定向到注册域。对于每个请求,我们将检查 URL 是否指向我们的 FQDN。如果请求是针对“短名称”的,那么我们将始终通过将www附加到将由 context.Host 方法返回的短名称来将其指向 FQDN 。

毫无疑问,这会增加健谈等等!

于 2008-11-11T01:19:19.610 回答
0

我在我的一台服务器上对此进行了一些测试,这就是我发现的。

我们有一个适用于 5 个域的 UCC 证书。我的 5 个域是

掌握 mydomain.com

子替代名称:mysite.com myweb.com thissite.com www.thissite.com

之所以这样设置是因为我不太明白它想要www。当我成功的时候。

所以,

https://mydomain.com - works
https://www.mydomain.com - works
https://www.mysite.com - ERROR
https://mysite.com - works
https://thissite.com - works
https://www.thissite.com - works.

如果您有 UCC 证书(似乎有),请在相关域上添加带有 www 的主题备用名称。然后它将适用于两者。

我经历了尝试使用 .htaccess 和服务器端脚本重定向的所有步骤。但是,hop 是对的,如果您不修复证书,它不会做任何事情。

重新加密证书时,您可能必须删除域。只需记住您放弃了哪个并为该证书获取新证书。从现在开始,我将永远永远拒绝购买 UCC 证书。问题多于它们的价值。1 个域 = 1 个证书。

如果您的域名正在赚钱,那么它物有所值,如果您不赚钱 - 您真的需要证书吗?

于 2013-11-18T23:42:29.870 回答
-1

在 Apache 中,这通常使用 mod_rewrite 完成:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

谷歌“重写 URL IIS”,你会发现一些 IIS 的等价物。

于 2008-11-08T21:14:04.583 回答
-1

有趣。在我看到这个问题之前,我从未在任何网站上观察到这种行为。甚至谷歌也有这个问题。下面的 url 给出了错误的证书错误

https://google.com/accounts/

顺便说一句,大多数网站都有一个子域,他们用证书保护它。一票赞成这个问题。

于 2008-11-08T21:21:19.607 回答