HttpSys:默认情况下禁用客户端证书重新协商

默认情况下已禁用重新协商连接和请求客户端证书的选项。 有关讨论,请参阅问题 dotnet/aspnetcore#23181

已引入的版本

ASP.NET Core 5.0

旧行为

可以重新协商连接以请求客户端证书。

新行为

只能在初始连接握手期间请求客户端证书。 有关详细信息,请参阅拉取请求 dotnet/aspnetcore#23162

更改原因

重新协商导致了许多性能和死锁问题。 HTTP/2 也不支持它。 有关在 ASP.NET Core 3.1 中引入控制此行为的选项的其他上下文,请参阅问题 dotnet/aspnetcore#14806

需要客户端证书的应用应使用 netsh.exe 将选项clientcertnegotiation设置为 enabled 。 有关详细信息,请参阅 netsh http 命令

如果希望仅为应用的某些部分启用客户端证书,请参阅 可选客户端证书中的指南。

如果您需要旧版的重新协商行为,请将HttpSysOptions.ClientCertificateMethod设置为旧值ClientCertificateMethod.AllowRenegotiate。 出于上述和链接指南中所述的原因,不建议这样做。

受影响的 API