HttpSys: rinegoziazione del certificato client disabilitata per impostazione predefinita
La possibilità di rinegoziare una connessione e richiedere un certificato client è stata disabilitata per impostazione predefinita. Per informazioni, vedi il problema dotnet/aspnetcore#23181.
Versione introdotta
ASP.NET Core 5.0
Comportamento precedente
La connessione può essere rinegoziata per richiedere un certificato client.
Nuovo comportamento
I certificati client possono essere richiesti solo durante l'handshake di connessione iniziale. Per altre informazioni, vedi la pull request dotnet/aspnetcore#23162.
Motivo della modifica
La rinegoziazione ha causato una serie di problemi di prestazioni e deadlock. Inoltre, non è supportata in HTTP/2. Per un contesto aggiuntivo su quando l'opzione per controllare questo comportamento è stata introdotta in ASP.NET Core 3.1, vedi il problema dotnet/aspnetcore#14806.
Azione consigliata
Le app che richiedono certificati client devono usare netsh.exe per impostare l'opzione clientcertnegotiation
su enabled
. Per altre informazioni, vedi comandi http netsh.
Se vuoi abilitare i certificati client solo per alcune parti dell'app, vedi le indicazioni in Certificati client facoltativi.
Se hai bisogno del comportamento di rinegoziazione precedente, imposta HttpSysOptions.ClientCertificateMethod
sul valore ClientCertificateMethod.AllowRenegotiate
precedente. Questa operazione non è consigliata per i motivi descritti in precedenza e nelle linee guida collegate.