Compartir a través de


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.

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.

API afectadas