安装多个证书时 SSL 重定向的最佳 IIS 配置

安装多个证书时 SSL 重定向的最佳 IIS 配置

我有一个 IIS7/WinServer2008 配置,其中安装了通配符 SSL 证书 (*.mydomain.com)。Web 服务器包含多个网站,每个网站都配置为通过同一 IP(称为 IP1)的主机标头进行路由。有些网站配置为使用 SSL,有些则没有。

所以我有...

a.mydomain.com -> SSL
b.mydomain.com -> non-SSL
c.mydomain.com -> SSL
d.mydomain.com -> non-SSL
e.mydomain.com -> non-SSL

ETC...

对于上面的示例站点 A 和 C(SSL 站点),我希望将标准 HTTP URL 重定向到 HTTPS。因此,在 IIS 的根目录(红色箭头)中,我通过添加自定义状态代码 403.4(请参阅下面的设置)配置了错误页面设置。

添加了客户 403.4 状态代码

编辑设置对话框

编辑功能设置对话框

redirectHttpToHttps.htm 文件的内容是...

<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
    var httpURL= window.location.hostname + window.location.pathname + window.location.search;
    var httpsURL= "https://" + httpURL;
    window.location = httpsURL;
}
redirectHttpToHttps();
</script>
<body>
</body>
</html>

然后,对于 A 和 C 站点,我用 SSL 绑定(专门路由到 IP1)替换了旧绑定,并将 SSL 设置设为“需要 SSL”。

一切运行正常。网站 A 重定向http://a.mydomain.comhttps://a.mydomain.com同样地,C 站点也做了同样的事情。

现在我有一个非通配符 SSL 证书可以引入到组合中。这是针对绑定到 aaa.customerdomain.com 的站点的。因此,我将证书添加到我的 IIS 服务器,并更改了 aaa.customerdomain.com 站点的绑定,以使用带有新证书和新 IP2 的 SSL 绑定。

所以现在如果我导航到https://aaa.customerdomain.com,一切都很好。但是,我不知道如何才能http://aaa.customerdomain.com重定向到 SSL 版本。

有人能帮助我以正确的方式配置 IIS,以便我可以使这一切正常工作吗?

答案1

要处理 IIS 中的各种类型的重定向,请尝试使用 URL 重写模块

http://www.iis.net/downloads/microsoft/url-rewrite

然后在每个站点的 Web 配置中添加以下配置,以实现 http 到 https 的重定向:

<rule name="Redirect 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>

您还可以通过 IIS url 重写模块界面使用 GUI 来完成此操作: 在此处输入图片描述 在此处输入图片描述

相关内容