【问题标题】:IIS 7 and SSL wildcard certificateIIS 7 和 SSL 通配符证书
【发布时间】:2012-03-30 02:56:47
【问题描述】:

我有一个不安全的域并想创建一个安全的子域。在运行 Windows Server 2008 和 IIS 7 的同一 IP 地址上。

所以我为 *.mydomain.co.uk 购买了通配符 SSL 证书,并将其安装在服务器上。它正确显示在服务器证书下。

我已经为测试目的设置了带有 HTTP 绑定的子域,并且一切正常 - 所以这不是 IIS 的问题。然后,我在普通 443 端口上为子域添加 HTTPS 绑定,因为我已将证书命名为 *.mydomain.com,所以在 UI 中为我启用了主机名框。所以我设置了 HTTPS 绑定,删除了 HTTP 绑定,重新启动了网站和 IIS。当我浏览到 www.mydomain.com 时,它工作正常 - 但是当我浏览到 https://subdomain.mydomain.com 时,我得到一个浏览器错误,说它找不到服务器。

任何帮助将不胜感激。

【问题讨论】:

    标签: ssl iis-7


    【解决方案1】:

    检查您的 DNS 设置并确保您有 subdomain.mydomain.com 的 A 或 CNAME 记录。

    仅将您的网络服务器设置为处理特定域名并不意味着主机名/域实际存在 - 还必须为其配置 DNS 系统。

    【讨论】:

    • 同意。如果您没有任何 A 记录,或者就此而言,您的子域的 DNS 系统中的任何条目都将无法访问您的子域站点。 IIS 设置只是过程的一半。
    • 但是 DNS 工作正常。如果子域是使用 http 绑定而不是 https 绑定设置的,则它可以正常工作。浏览器可以访问它等等。我需要做任何不同的事情仅仅因为它是一个 https 吗?
    • 应该添加 DNS 从外部到服务器工作。即,如果使用 HTTP 绑定设置,通常连接互联网的 PC 可以浏览子域。将其更改为 HTTPS 绑定时,事情就会中断。
    • dns 根本不关心您使用的是什么协议。根据您是否将 http 用于一个,将 https 用于另一个,无法将主机名映射到 2 个不同的 ip。如果您无法通过 https 访问主机名,则这是网络服务器配置问题。如果您在运行浏览器的任何地方都无法 ping/nslookup 主机名,那么这是一个 dns 问题。
    • 我同意,这应该与 DNS 无关。当您根本无法访问主机名时,DNS 就是问题所在。
    【解决方案2】:

    好的,想通了 - 正常情况下,问题很多,而不仅仅是一个。

    首先是防火墙问题 - 服务器在 Amazon EC2 上运行,并且设置了安全组以阻止端口 443 上的 HTTPS 流量。

    其次确实是 DNS。尽管在使用 HTTP 绑定时可以在没有 CNAME 记录的情况下浏览子域,但在使用 HTTPS 时似乎需要显式 CNAME 记录。不要问我为什么。

    有问题的子域用于 IFrame Facebook 应用程序。它在 IE 和 Chrome 中呈现良好,但 Firefox 抛出 ssl_error_renegotiation_not_allowed 错误。这是由于 IIS 中的 SSL 设置 - 它们需要设置为需要 SSL(未勾选)或勾选但随后客户端证书忽略

    唷 - 很高兴它现在已经启动并运行了。

    【讨论】:

      【解决方案3】:

      我能够使用 A 记录而不是 CNAME 来执行此操作。我没有勾选需要 SSL。我改用了 URL 重写。
      <rule name="redirect to https" stopProcessing="true"> <match url="http://(.*)"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/> </rule>

      您还需要使用通配符证书在所有安全子域上设置 SSL 主机标头。

      appcmd set site /site.name:"<IISSiteName>" /+bindings.[protocol='https',bindingInformation='*:443:<hostHeaderValue>']
      

      【讨论】:

        【解决方案4】:

        弄清楚这一点可能很痛苦,但要寻找的一件事是

        但请确保用于子域的应用程序池的身份对 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 文件夹具有权限。

        【讨论】:

        • 嗨@Dimestore,你所说的“用于子域的应用程序池的身份”是什么意思,你能给我一个确切的想法,怎么做?
        • 你是想说这个吗? waissguy.wordpress.com/2010/08/30/…
        • 不知道迟到的答案是否会帮助任何人,我的意思是用于该站点的应用程序池具有 Windows 身份,该身份必须具有 MachineKeys 文件夹的文件读取权限。通常,用于应用程序池的身份设置未设置为对该文件夹(或站点外的任何文件夹)具有读取权限
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        • 1970-01-01
        • 2017-01-30
        • 2016-06-14
        • 1970-01-01
        • 2017-10-31
        相关资源
        最近更新 更多