1

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

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

因此,我没有将所有链接和重定向更改为使用绝对 URL 来指定httpor https,而是实现了一个http 模块来自动在 和 之间切换httphttps如此处所建议。但是,我仍然收到错误:

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

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

4

1 回答 1

0

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

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

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

于 2012-09-06T17:17:23.377 回答