在asp.net 4.0和IIS 7.5中启用SSL

时间:2011-05-04 11:57:49

标签: asp.net ssl

我创建了一个asp.net 4.0项目。我想为它启用SSL。我是否需要将此Web项目映射到IIS中的新网站。当我尝试创建一个新网站时,我得到:

绑定'*:80:'被分配给另一个站点。如果为此站点分配相同的绑定,则只能启动其中一个站点。您确定要添加此重复绑定吗?

我正在尝试关注以下帖子:

http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx

http://mscrm4humans.wordpress.com/2010/06/24/enabling-ssl-on-iis-7-0-using-self-signed-certificates/

我的IIS是7.5.7600 .... 我对asp.net中的SSL完全不熟悉。请建议解决此问题。

3 个答案:

答案 0 :(得分:2)

虽然可以配置主机标头来执行您所需的操作,但最简单的方法是使用不同的IP地址配置新网站。

将新IP地址添加到服务器,然后将新站点的绑定设置为端口80和443上的新IP地址。将应用程序池设置为使用.NET 4运行,然后您可以添加一个很好的触摸一个URLRewrite规则,通过将其粘贴到web.config中来将所有非SSL流量推送到HTTPS:

<system.webServer>
      <rewrite>
        <rules>
            <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>
        </rules>
    </rewrite>
</system.webServer>

或者,如果您想强制使用SSL,则只需勾选IIS中的Force SSL选项即可。

答案 1 :(得分:1)

听起来您已经在端口80上设置了站点。您的IIS可能具有默认网站设置。如果您没有使用该网站,可以在遵循Scott Guthrie博客文章中的步骤之前将其删除,这样可以解决问题。

如果您使用默认网站,请在创建新网站时将其更改为81。您可以在Scott Guthrie的博客文章中更改第二张图片所示屏幕中的端口。

如果您想阻止任何非ssl流量到达您的新网站,您应该在完成所有设置后删除端口80(或81)上的绑定。

答案 2 :(得分:0)

要使用SSL,您必须:

  • 在IIS中有一个单独的网站
  • 本网站必须有一个单独的IP地址,该地址将绑定在443端口

您无法使用主机标头在IIS中托管单独的网站并使用SSL。

查看此文章以获取更多帮助:

http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7/