【发布时间】:2020-02-05 11:51:35
【问题描述】:
我们正在运行一个通过 Kestrel 提供 Web api 的 Dotnet Core 3.0 应用程序。默认情况下,Kestrel 已将可用协议设置为 Protocols.Http1AndHttp2。
在我们的一台测试机器上,结果表明 http/2 不能与 Google Chrome (77.0.3865.90) 结合使用。浏览器显示带有ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY 消息的错误。在这种情况下,回退到 http1 不起作用,因为浏览器通常支持 http/2。
微软边缘顺便说一句。 是否支持通过 http/2 请求相同的端点。
我在我的开发机器上测试了证书,结果证明它按预期工作。因此,证书本身而不是托管应用程序的服务器似乎不是问题。我的本地机器正在运行 Windows 10 Pro (1903)。服务器正在运行 Windows Server 2012 R2 Datacenter (6.3.9600)。
该应用程序将作为一个独立的包托管在我们的客户服务器上,我们不会影响 api 将运行哪些服务器。
我们不是完全禁用 http/2,而是想检查是否所有浏览器都接受提供的结合 http/2 的证书。我不确定如何在服务器端找到它。对我们来说,提供的密码套件似乎存在某种问题,但我不知道如何检查服务器端的兼容性。
有人知道如何检查兼容性吗?
【问题讨论】:
标签: encryption .net-core http2 x509certificate2 kestrel-http-server