HttpSys: renegocjacja certyfikatu klienta jest domyślnie wyłączona

Opcja ponownego negocjowania połączenia i żądania certyfikatu klienta została domyślnie wyłączona. Aby zapoznać się z dyskusją, zobacz problem dotnet/aspnetcore#23181.

Wersja wprowadzona

ASP.NET Core 5.0

Stare zachowanie

Połączenie można renegocjować, aby zażądać certyfikatu klienta.

Nowe zachowanie

Żądanie certyfikatu klienta można składać tylko podczas początkowego procesu uzgadniania połączenia (handshake). Aby uzyskać więcej informacji, zobacz prośbę o pobranie dotnet/aspnetcore#23162.

Przyczyna zmiany

Renegocjacja spowodowała szereg problemów z wydajnością i zakleszczaniem. Nie jest również obsługiwany w protokole HTTP/2. Aby uzyskać dodatkowy kontekst dotyczący momentu, w którym wprowadzono możliwość kontrolowania tego zachowania w ASP.NET Core 3.1, zobacz kwestię dotnet/aspnetcore#14806.

Aplikacje wymagające certyfikatów klienta powinny używać netsh.exe , aby ustawić clientcertnegotiation opcję na enabled. Aby uzyskać więcej informacji, zobacz netsh http commands (Polecenia netsh http).

Jeśli chcesz, aby certyfikaty klienta są włączone tylko dla niektórych części aplikacji, zapoznaj się ze wskazówkami w temacie Opcjonalne certyfikaty klienta.

Jeśli potrzebujesz starego zachowania renegocjacji, ustaw wartość HttpSysOptions.ClientCertificateMethod na starą wartość ClientCertificateMethod.AllowRenegotiate. Nie jest to zalecane z powodów opisanych powyżej i w połączonych wskazówkach.

Interfejsy API, których dotyczy problem