Partilhar via


HttpSys: Renegociação de certificado de cliente desabilitada por padrão

A opção para renegociar uma conexão e solicitar um certificado de cliente foi desabilitada por padrão. Para discussão, consulte issue dotnet/aspnetcore#23181.

Versão introduzida

ASP.NET Núcleo 5.0

Comportamento antigo

A conexão pode ser renegociada para solicitar um certificado de cliente.

Novo comportamento

Os certificados de cliente só podem ser solicitados durante o handshake de conexão inicial. Para obter mais informações, consulte pull request dotnet/aspnetcore#23162.

Motivo da mudança

A renegociação causou uma série de problemas de desempenho e impasse. Também não é suportado em HTTP/2. Para obter contexto adicional de quando a opção para controlar esse comportamento foi introduzida no ASP.NET Core 3.1, consulte issue dotnet/aspnetcore#14806.

Os aplicativos que exigem certificados de cliente devem usar netsh.exe para definir a clientcertnegotiation opção como enabled. Para obter mais informações, consulte comandos netsh http.

Se você quiser que os certificados de cliente sejam habilitados apenas para algumas partes do seu aplicativo, consulte as orientações em Certificados de cliente opcionais.

Se você precisar do comportamento de renegociação antigo, defina HttpSysOptions.ClientCertificateMethod como o valor ClientCertificateMethod.AllowRenegotiateantigo . Isso não é recomendado pelos motivos descritos acima e nas orientações vinculadas.

APIs afetadas