HttpSys: Nové vyjednávání klientského certifikátu je ve výchozím nastavení zakázané
Možnost opětovného vyjednávání připojení a vyžádání klientského certifikátu je ve výchozím nastavení zakázaná. Diskuzi najdete v tématu problému dotnet/aspnetcore#23181.
Zavedená verze
ASP.NET Core 5.0
Staré chování
Připojení je možné znovu projednat a požádat o klientský certifikát.
Nové chování
Klientské certifikáty je možné vyžádat pouze během počáteční metody handshake připojení. Další informace najdete v tématu žádosti o přijetí změn dotnet/aspnetcore#23162.
Důvod změny
Nové vyjednávání způsobilo řadu problémů s výkonem a vzájemným zablokováním. Nepodporuje se ani v PROTOKOLU HTTP/2. Další kontext od uvedení možnosti řízení tohoto chování v ASP.NET Core 3.1 najdete v tématu problému dotnet/aspnetcore#14806.
Doporučená akce
Aplikace, které vyžadují klientské certifikáty, by měly používat netsh.exe k nastavení clientcertnegotiation
možnosti .enabled
Další informace naleznete v tématu netsh http příkazy.
Pokud chcete povolit klientské certifikáty jenom pro některé části aplikace, přečtěte si pokyny v části Volitelné klientské certifikáty.
Pokud potřebujete staré chování opětovného vyjednávání, nastavte HttpSysOptions.ClientCertificateMethod
na starou hodnotu ClientCertificateMethod.AllowRenegotiate
. To se nedoporučuje z důvodů uvedených výše a v propojených doprovodných materiálech.