IIS 7.5 多个子域相同的通配符证书

IIS 7.5 Multiple subdomains same wildcard certificate

这是一个奇怪的问题,因为我想做的就是扩展一个配置,该配置已经按照描述的方式正常运行,添加一个新网站,它只是一个现有 Web 应用程序的副本。

所以我们得到的是通配符证书*.business.com

我们已经有 8 个其他站点绑定到同一个 SSL 证书,每个站点都有自己的主机名。

所有现有站点的 role/application/structure 都大不相同,因此从这个意义上讲,没有任何重复的文件或应用程序。

我正在尝试添加 x.business.com 但由于某些原因 IIS 不想知道它。 我会解释我所做的,希望有人能看到我的错误。

我的第一步是在域的 DNS 中设置 A 记录。

所以上面列出的所有其他 URL 都指向相同的 public IP 地址。

我们称它为 100.10.10.100

然后我在 IIS 中创建了一个简单的网站,其中包含一个简单的 default.htm 用于测试。

将主机名设置为 x.business.com 并绑定 SSL 证书(使用 appcmd)后,我测试了站点地址。没有什么。我的意思是说该站点无法访问的一般错误。此时没有日志,因为站点没有提供任何服务。

ping URL returns DNS 中设置的 IP 地址但没有响应。

为了尝试简化,我添加了另一个名为 TestSite 的简单站点。我在主机文件 127.0.0.1 TestSite 中创建了一个条目。尝试了 IIS 服务器浏览器,这也没有用。

然而,当我将 TestSite 更改为使用端口 81 然后进行测试时 http://testsite:81 我得到了肯定的响应。

然后我尝试扩展这个测试并制作了另一个 A 记录测试站点。business.com。将主机名添加到现有测试站点,然后尝试 http://testsite.business.com:81 失败。

回滚一切,它再次工作。

对于我的生活,我看不出我需要做什么才能让它工作。这似乎是一个 DNS 问题,但其他 8 个站点都可以使用相同的 IP address:port(例如 100.10.10.100:80)正常工作,多个站点绑定到同一个 SSL 证书没有问题并且已经从近两个站点工作年.

我想补充一点,我没有设置它,因此在黑暗中摸索,但我确信我过去做过类似的事情没有问题。

我已经搜索了几个小时,但没有发现任何明显遗漏的内容。当我看到很少有类似问题的帖子时,它也让我担心,这让我觉得我错过了一些真正基本的东西。

感谢您对诊断此问题的想法。

好的,大家可以放松一下了。

有两个问题是 DNS A 记录中的拼写错误。是的,这是我的。

不过,我还在默认网站中发现了一段有趣的代码。

Default.asp 有以下代码。看起来这是在对传入的 Web 请求和重定向进行一些转换。

 // Redirect appropriately
 response.buffer = True
 response.clear
 response.status = "301 Moved"
 If InStr(sServerName,"a") > 0 Then
  response.addHeader "Location", "https://a.business.com/" & Request.QueryString
 Elseif InStr(sServerName,"b") > 0 Then
  response.addHeader "Location", "https://b.business.com/" & Request.QueryString
 End If

所以我添加了

 // Redirect appropriately
 response.buffer = True
 response.clear
 response.status = "301 Moved"
 If InStr(sServerName,"a") > 0 Then
  response.addHeader "Location", "https://a.business.com/" & Request.QueryString
 Elseif InStr(sServerName,"b") > 0 Then
  response.addHeader "Location", "https://b.business.com/" & Request.QueryString
 Elseif InStr(sServerName,"x") > 0 Then
  response.addHeader "Location", "https://x.business.com/" & Request.QueryString
 End If