在IIS / ASP.NET中配置SSL

时间:2012-09-05 18:57:55

标签: asp.net ssl iis-6 httpmodule

我会尽量做到尽可能简短。我已经在我的服务器上设置了证书。我只是对我在网站上配置ssl的正确方法有疑问。

我需要保护根login.aspx以及admincart目录。因此,在IIS中,您可以右键单击站点中的文件或目录,然后转到Properties - > File/Directory Security标签 - > Secure Communications部分,然后点击Edit - >检查Require secure channel (SSL)。这会导致通过https连接请求文件或目录内容,并且asp.net不会自动转换请求。

因此,我没有更改所有链接和重定向以使用绝对网址来指定httphttps,而是实施了http module以自动在http之间切换和https建议here。但是,我仍然得到错误:

  

必须通过安全通道查看该页面

因为最初不是通过https发送的,而是在模块中转换的。如果我删除IIS中的设置,它工作正常;页面模块自动将连接切换到https。我的问题是,是否可以在IIS中没有SSL要求设置,只是让我的http模块处理http / https切换?我觉得这样做会失去一层安全感。有没有人对此有任何见解?

1 个答案:

答案 0 :(得分:0)

我认为不启用Require secure channel选项是可以接受的。我只在需要保护整个域时才启用该选项,例如secure.domain.com。对于具有需要HTTPS的部分和我不需要的部分的站点,我使用您描述的切换器方法。当用户请求登录页面时,他们将通过HTTPS重定向到同一页面。所有cookie都设置为仅通过SSL提供:

<system.web>
        <httpCookies httpOnlyCookies="true" requireSSL="true" lockItem="true" />
</system.web>

如果cookie不存在,则用户未登录,并且页面通过HTTP传送。