我有一个 301 设置,它将http://domain.com重定向到http://www.domain.com ( http://www.domain.com $S$Q) 但如果我浏览到 http s :// domain.com 我收到一个 SSL 错误(因为它需要 www.domain.com)。
在浏览器抛出证书错误之前,有什么方法可以让它重定向?
我有一个 301 设置,它将http://domain.com重定向到http://www.domain.com ( http://www.domain.com $S$Q) 但如果我浏览到 http s :// domain.com 我收到一个 SSL 错误(因为它需要 www.domain.com)。
在浏览器抛出证书错误之前,有什么方法可以让它重定向?
是的,但不是你想的那样。
如果你不能做到这一点,那么不幸的是,你运气不好。您不能使用 HOST 标头来区分这两个请求,因为那已经太晚了(因此,需要单独的 IP 地址)。除非你有一个有效的证书,否则浏览器会阻塞,所以你还需要第二个证书。
恐怕没有办法绕过这些要求。
我有完全相同的要求,例如将所有https://domain.com重定向到https://www.domain.com并将所有 http 重定向到 https,这里是我如何实现并使其工作 IIS 8.5。我在 web.config 文件中使用了以下代码:
这就像魅力一样。实际上,我通过使用 Web 平台安装程序安装“URL 重写模块”在 web.config 中生成了上述代码。安装后,我在 IIS 8.5 中找到了这个模块,然后我添加了新规则。希望您可以直接在 web.config 中编写此代码来完成工作。
有办法绕过它。您可以获得 www.domain.com 和 domain.com 的单一证书。然后,您可以使用常规重定向。不过,这些多域证书通常更昂贵。
我设置了两个域,每个域都有自己的 conf 文件、(共享)证书和单独的主目录,然后在 domain.com 的 index.html 中添加 html 元刷新以重定向到 www.domain.com。它有效,但也许有更好的方法。
在 www.domain.com 的证书上,您需要为 domain.com 添加一个 SAN 条目。您的颁发者将重新颁发证书。将证书作为 SAN 添加到证书后,该证书将适用于该名称。
SAN 条目是主题备用名称。您可以将多个 SAN 添加到证书中。
这里有更多信息:https ://www.digicert.com/subject-alternative-name.htm