为什么 "requireSSL='true'" 抛出 IIS 错误

Why "requireSSL='true'" was throwing IIS error

我在 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 的 Application Start 中的部分代码可能是导致问题的原因,但我不确定。

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

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

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

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

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

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

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

@Vishesh Pandita 在您的情况下,您正尝试仅使用 HTTP 访问站点。 So faced "HTTP Error 403 - 403.4 Forbidden: SSL required" error.It 表示您尝试访问的页面受安全套接字层 (SSL) 保护。

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

Migration for HTTP to HTTPs

来源:Professional ASP.NET MVC 5