IIS URL 重写/SSL 证书

IIS URL 重写/SSL 证书

我将使用 DigiCert 多域证书进行以下操作:

  www.example.com
  example.com
  sub1.example.com
  www.sub1.example.com
  sub2.example.com
  www.sub2.example.com

     etc...

我正在使用 IIS URL Rewrite 从所有域中删除 www.,这给了我:

  example.com
  sub1.example.com
  sub2.example.com

我还使用 URL Rewrite 将所有 http:// 路由到 https://。

我的问题:

  1. 由于我正在重新路由到精简版 URL,我是否需要 www. 域名证书?
  2. 以 www. 为前缀的证书对于协商初始 SSL 连接是否是必要的?

如果可能的话,我想消除所有 www. 证书。

已编辑

为了完整性,我添加了我正在使用的两个重定向。

<rewrite>
  <rules>
    <rule name="Remove www" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
      </conditions>
      <action type="Redirect" url="https://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>
    <rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" negate="false" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
    </rule>
  </rules>
</rewrite>

谢谢...

更新:不良副作用

经过大量测试,我发现从 URL 中删除 www. 会产生一些不良副作用。在某些情况下,用户会看到有关网站不安全的安全警告,从我们的角度来看,这确实很糟糕。

可能的用户输入的 URL:

example.com、www.example.com、http:// 或 https:// 以及 example.com 或 www.example.com

所需重写 URL:

https:// + example.com

浏览器之间的差异

https:// + www.example.com/ URL 不会在 IE、Edge、Safari 和 Firefox 上重写为所需的 URL,但会在 Chrome 中重写。考虑了一段时间后,我不确定 Chrome 为什么允许 HTTPS 重写,因为输入了一个硬编码的 HTTPS URL。

Chrome 将 https:// + www.example.com/ 路由到 https:// + example.com。不会向用户显示任何证书失败信息。

IE 缓存损坏?

在 IE 上输入 URL https:// + www.example.com 后,似乎会破坏历史记录缓存。

如果您在输入上一个 URL 后输入 www.example.com,浏览器将路由到 https:// + www.example.com/。这会产生 BAD 证书消息,这不太好。

如果您关闭并重新打开 IE,再次输入 www.mydomain.com,异常仍然继续。

如果我手动清除不良 https:// + www.example.com URL 的缓存,然后输入 www.example.com,IE 会路由到 https:// + example.com,这是所需的结果。

Safari 临时缓存损坏?

在与 IE 相同的测试条件下,MAC Safari 也出现了类似的故障,但 Safari 在导航到其他 URL 并返回后恢复了或者关闭/重新打开浏览器。

使用模型的结论

消除 www. 不是一个好选择。

答案1

TLS 会话在任何处理(包括重写)之前设置。因此,为了避免浏览器错误,您应确保您的证书包含您希望客户端在其浏览器中输入的所有 DNS 名称的主题备用名称条目。其中包括万维网那些。

唯一的例外是你从http://www.example.com(无 TLS)https://example.com(TLS)。在这种情况下,重写将通过 http 进行,因此不会涉及 TLS 和证书。

相关内容