【问题标题】:IIS 7.5 Multiple subdomains same wildcard certificateIIS 7.5 多个子域相同的通配符证书
【发布时间】:2018-11-30 10:54:55
【问题描述】:

这是一个奇怪的问题,因为我试图做的只是扩展一个已经正常运行的配置,通过添加一个新网站来描述它,这只是现有 Web 应用程序的副本。

所以我们有一个通配符证书 *.business.com

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

  • a.business.com
  • b.business.com
  • ..
  • h.business.com

所有现有网站的角色/应用程序/结构都大不相同,因此从这个意义上说,没有任何重复的文件或应用程序。

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

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

所以上面列出的所有其他 URL 都指向同一个公共 IP 地址。

我们称之为 100.10.10.100

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

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

对 URL 的 ping 会返回 DNS 中设置的 IP 地址,但没有响应。

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

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

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

回滚一切,它再次工作。

在我的一生中,我看不出我需要做什么才能让它发挥作用。这似乎是一个 DNS 问题,但其他 8 个站点都使用相同的 IP 地址:端口(例如 100.10.10.100:80)运行良好,多个站点绑定到同一个 SSL 证书没有问题,并且已经工作了近两年。

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

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

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

【问题讨论】:

    标签: ssl iis ssl-certificate iis-7.5 wildcard-subdomain


    【解决方案1】:

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

    两个问题在 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

    【讨论】:

      猜你喜欢
      • 2019-01-17
      • 2012-06-14
      • 2017-04-30
      • 2015-12-18
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多