如何使用 IIS 将 https://domain.com 重定向到 https://www.domain.com?

如何使用 IIS 将 https://domain.com 重定向到 https://www.domain.com?

我设置了 301 重定向http://域名.comhttp://www.domain.comhttp://www.domain.com$S$Q) 但是如果我浏览到 https://domain.com 我收到 SSL 错误(因为它预期的是 www.domain.com)。

有什么方法可以在浏览器抛出证书错误之前让它重定向吗?

答案1

是的,但不是你想的那样。

  • 您需要一个有效的 domain.com 证书
  • 您需要 domain.com 和 www.domain.com 拥有单独的公共 IP 地址

如果你做不到这一点,那你很不幸。你不能使用 HOST 标头来区分这两个请求,因为那太晚了(因此,需要单独的 IP 地址)。除非你拥有有效的证书,否则浏览器会阻塞,因此你还需要第二个证书。

恐怕没有办法满足这些要求。

答案2

我有完全相同的要求,例如重定向所有https://domain.comhttps://www.domain.com并将所有 http 重定向到 https,以下是我如何实现并使其在 IIS 8.5 中运行。我在 web.config 文件中使用了以下代码:

<system.webServer>
  <!--Maybe some other settings-->
      <rewrite>
          <rules>
              <rule name="http to https" stopProcessing="true">
                  <match url="(.*)" />
                  <conditions>
                      <add input="{HTTPS}" pattern="^OFF$" />
                  </conditions>
                  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
              </rule>
              <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
                 <match url="*" />
                 <conditions>
                   <add input="{HTTP_HOST}" pattern="yourdomainname.com" />
                 </conditions>
                 <action type="Redirect" url="https://www.yourdomainname.com/{R:0}" />
              </rule>
          </rules>
      </rewrite>
  <!--Maybe some other settings-->
</system.webServer>

这很有效。实际上,我是通过使用 Web 平台安装程序安装“URL 重写模块”在 web.config 中生成上述代码的。安装后,我在 IIS 8.5 中找到了此模块,然后添加了新规则。希望您可以直接在 web.config 中写入此代码来完成任务。

答案3

有办法解决这个问题。您可以为 www.domain.com 和 domain.com 获取单个证书。然后您可以使用常规重定向。不过这些多域名证书通常更贵。

答案4

在 www.domain.com 的证书上,您需要为 domain.com 添加 SAN 条目。您的颁发者将重新颁发证书。一旦将名称作为 SAN 添加到证书中,证书便可用于该名称。

SAN 条目是主体备用名称。您可以将多个 SAN 添加到一个证书。

以下是更多信息:https://www.digicert.com/subject-alternative-name.htm

相关内容