AllowRenegotiation 默认为 false
SslServerAuthenticationOptions.AllowRenegotiation 的默认值已更改为 false
。
旧行为
在以前的版本中,默认情况下服务器允许客户端重新协商。
新行为
从 .NET 7 开始,必须在服务器端显式启用客户端重新协商。
引入的版本
.NET 7
中断性变更的类型
更改原因
业界认为客户端重新协商不安全。 例如,TLS 1.3 已将其完全删除。 因此,默认情况下我们应禁用它。
建议的操作
如果需要客户端重新协商,则在初始化 SslStream 的服务器端时将 SslServerAuthenticationOptions.AllowRenegotiation 设置为 true
。
受影响的 API
- System.Net.Security.SslServerAuthenticationOptions
- System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate, Boolean, Boolean)
- System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate, Boolean, SslProtocols, Boolean)
- System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate)