Partager via


HttpSys : La renégociation du certificat client a est désactivée par défaut

L’option permettant de renégocier une connexion et de demander un certificat client a été désactivée par défaut. Pour discuter, voyez le problème dotnet/aspnetcore#23181.

Version introduite

ASP.NET Core 5.0

Ancien comportement

La connexion peut être renégociée pour demander un certificat client.

Nouveau comportement

Les certificats clients ne peuvent être demandés qu'au cours du handshake de connexion initial. Pour plus d’informations, consultez pull request dotnet/aspnetcore#23162.

Raison de la modification

La renégociation a provoqué un certain nombre de problèmes de performances et de blocage. Il n’est pas non plus pris en charge dans HTTP/2. Pour obtenir un contexte supplémentaire à partir duquel l’option de contrôle de ce comportement a été introduite dans ASP.NET Core 3.1, consultez le problème dotnet/aspnetcore#14806.

Les applications qui nécessitent des certificats clients doivent utiliser netsh.exe pour définir l'option clientcertnegotiation à enabled. Pour plus d’informations, consultez netsh http commands.

Si vous souhaitez que les certificats clients soient activés uniquement pour certaines parties de votre application, consultez les instructions des certificats clients facultatifs.

Si vous avez besoin de l’ancien comportement de renégociation, définissez HttpSysOptions.ClientCertificateMethod sur l’ancienne valeur ClientCertificateMethod.AllowRenegotiate. Cela n’est pas recommandé pour les raisons décrites ci-dessus et dans les instructions liées.

API affectées