【问题标题】:ASP.NET Core 3.0 security issue with Http2 on Chrome and FirefoxChrome 和 Firefox 上的 Http2 的 ASP.NET Core 3.0 安全问题
【发布时间】:2020-01-15 22:52:31
【问题描述】:

我有几个 VS 2019 项目,是一些同事创建的,我下载并尝试运行。直接开箱即用,没有修改,Chrome 和 Firefox 都抱怨(Edge 没有。)

顺便说一句,我正在使用 Kestrel 运行它。

铬:
“无法访问此站点 https://localhost:5001/ 的网页可能暂时关闭,或者它可能已永久移动到新的网址。 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY"

火狐 您的连接不安全……等等等等…… NS_ERROR_NET_INADEQUATE_SECURITY

我在 appsettings.json 中使用了解决方法:

"Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http1"
    }

但是,简单地回归到 Http1 不是解决方案,它只是一种解决方法。我也不确定为什么我的同事没有遇到这个问题,我也没有。任何想法将不胜感激。

【问题讨论】:

  • 听起来您可能已经有了解决方案,但由于我没有找到好的解决方案,这就是我的情况:我将一个 aspnet 核心 2.2 项目迁移到核心 3。调试中的红隼(有效在迁移之前很好)将始终使用旧的无效证书,它给了我 NS_ERROR_NET_INADEQUATE_SECURITY。我最终解决的问题是从我的 csproj 中注释掉 UserSecretsId 行。之后,一切又开始工作了。

标签: asp.net-core http2 kestrel-http-server


【解决方案1】:

检查您的 TLS 设置,因为 HTTP/2 将最旧、更不安全的密码 as listed in the specification 列入黑名单,并且如果使用了 HTTP/2,则可能不允许连接使用它们。您应该配置您的网络服务器以使用更现代的 GCM 密码,例如 TLS_AES_256_GCM_SHA384。

【讨论】:

  • 添加了更多细节。然而答案仍然是正确的 - 升级密码,因为 HTTP/2 不会用于较弱的密码。从什么密码到什么密码取决于他们现在配置的确切内容以及他们可用的内容,OP没有详细说明。
  • 公平,答案很简单……但我同意重新阅读。
  • 请原谅我对这个问题的无知,但只是为了澄清:我的同事拥有与我下载此应用程序时完全相同的代码和其他文件。他们的作品没有错误/警告。我的没有。因此,当您说“检查您的 TLS 设置...”等时,您指的是我机器上的某些设置(例如,通过 Windows Defender、McAfee 或其他控制协议的应用程序?)当您说“配置我的网络服务器”,我的假设是修改 appsettings.json,但这并不能解释为什么我的不起作用,而他们的没有修改。
  • 好的,让我们通过一些问题来了解差异。 1)他们的工作是在你的机器上工作还是让你只测试你自己的机器(这是为了排除是否有防病毒软件导致问题)。 2) 你能在其他网站上使用 HTTP/2 吗? 3) 你们都在什么操作系统和版本上运行 Web 服务器?我假设是 Windows,但请确认。 4) 您能否确认您是直接连接到 Kestrel 而不是通过 IIS 或其他 Web 服务器? 5)你能给你一个问题的最小再现(代码和配置)吗? 6) 你能确认这个最小的复制在你朋友的机器上有效吗?
猜你喜欢
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 2012-07-30
相关资源
最近更新 更多