Udostępnij za pośrednictwem


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.

Wprowadzona wersja

ASP.NET Core 5.0

Stare zachowanie

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

Nowe zachowanie

Certyfikaty klienta można żądać tylko podczas początkowego uzgadniania połączenia. Aby uzyskać więcej informacji, zobacz żądanie ściągnięcia dotnet/aspnetcore#23162.

Przyczyna wprowadzenia 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 podczas kontrolowania tego zachowania w ASP.NET Core 3.1, zobacz problem 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.

Dotyczy interfejsów API