【问题标题】:Why "requireSSL='true'" was throwing IIS error为什么“requireSSL='true'”会引发 IIS 错误
【发布时间】:2019-05-16 04:57:25
【问题描述】:

我正在 ASP.NET 中的 MVC 框架上工作,我试图访问该应用程序,但我无法通过登录屏幕,之后它一直抛出未找到的 IIS 错误。解决方法后,我发现我的web.config 文件中有这行:httpCookies httpOnlyCookies="true" requireSSL="true" 正在停止访问。谁能帮我理解这里的问题和概念? 已经谢谢了。

仅删除 requireSSL 部分后,我就能够访问该站点。

网络配置

httpCookies httpOnlyCookies="true" requireSSL="true"

Global.asax 的应用开始:

if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false)
{
   ServicePointManager.SecurityProtocol = 
      ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;
}

我认为global.asax的应用程序启动中的代码部分可能会导致问题,但我不确定。

【问题讨论】:

  • 你的登录方式有没有写[RequireHttps]

标签: asp.net-mvc ssl iis-7 web-config tls1.2


【解决方案1】:

网站使用 cookie 在页面请求或浏览会话之间存储信息。

从外部提供商到您网站的回调包含允许访问您的网站并包含用户信息的安全令牌 (httpCookies)。

如果有人设法窃取他人的网站身份验证 cookie,他可以执行他们能够执行的所有操作。

通过 HTTPS 传输此信息以防止在此信息通过 Internet 传输时被拦截很重要

您可以通过添加一个简单的标志来停止对您网站中所有 cookie 的脚本访问:HttpOnly。你可以设置 web.config中的这个标志,如下:

<httpCookies domain="" httpOnlyCookies="true" requireSSL="false" />

因此,如果您在 Web.config 中写入 requireSSL="true",它会强制外部提供商仅使用 HTTPS 对您的站点进行回调。

@Vishesh Pandita 在您的情况下,您尝试仅使用 HTTP 访问站点。因此面临“HTTP 错误 403 - 403.4 Forbidden: SSL required”错误。这意味着您尝试访问的页面受到安全套接字层 (SSL) 的保护。

解决方案: 要查看该页面,您必须通过在您尝试访问的地址的开头键入“https://”而不是“http://”来启用 SSL(安全套接字层)。 “https”中的“s”表示安全站点。

Migration for HTTP to HTTPs

来源:Professional ASP.NET MVC 5

【讨论】:

  • 非常感谢@mannan 的回答。但是为什么它在我的情况下不起作用。出了什么问题?我实际上想要这个'强制外部提供商仅使用 HTTPS 对您的站点进行回调。'
  • 您必须获得安全证书才能为您的站点启用 HTTPS。在您的情况下,您仅使用 http 访问网站
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2013-07-16
  • 2015-09-02
  • 2011-01-19
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多