HttpSys: Deshabilitación predeterminada de la renegociación del certificado de cliente
La opción de renegociar una conexión y solicitar un certificado de cliente se ha deshabilitado de forma predeterminada. Para obtener información, vea el tema dotnet/aspnetcore#23181.
Versión introducida
ASP.NET Core 5.0
Comportamiento anterior
La conexión se puede volver a negociar para solicitar un certificado de cliente.
Comportamiento nuevo
Los certificados de cliente solo se pueden solicitar durante el protocolo de enlace de la conexión inicial. Para obtener más información, vea la solicitud de incorporación de cambios dotnet/aspnetcore#23162.
Motivo del cambio
La renegociación causaba una serie de problemas de rendimiento e interbloqueo. Tampoco se admite en HTTP/2. Para obtener información adicional sobre el momento en que se introdujo la opción para controlar este comportamiento en ASP.NET Core 3.1, vea el problema dotnet/aspnetcore#14806.
Acción recomendada
Las aplicaciones que requieren certificados de cliente deben usar netsh.exe para establecer la opción clientcertnegotiation
en enabled
. Para más información, vea Comandos netsh http.
Si quiere que los certificados de cliente estén habilitados solo para algunas partes de la aplicación, consulte las instrucciones en Certificados de cliente opcionales.
Si necesita el comportamiento anterior de renegociación, establezca HttpSysOptions.ClientCertificateMethod
en el valor anterior ClientCertificateMethod.AllowRenegotiate
, si bien esto no es recomendable por los motivos que se describen anteriormente y en la guía vinculada.