HttpSys: повторное согласование сертификата клиента, отключенное по умолчанию
Возможность повторного согласования подключения и запроса сертификата клиента по умолчанию отключена. Обсуждение этого вопроса см. на странице dotnet/aspnetcore#23181.
Представленные версии
ASP.NET Core 5.0
Старое поведение
Подключение можно повторно согласовать, чтобы запросить сертификат клиента.
Новое поведение
Сертификаты клиентов можно запросить только во время первоначального подтверждения соединения. Подробную информацию см. в описании запроса на внесение изменений dotnet/aspnetcore#23162.
Причина изменения
Повторное согласование привело к ряду проблем с производительностью и взаимоблокировкой. Оно также не поддерживается в HTTP/2. Расширенный контекст с момента реализации этого параметра для управления таким поведением в ASP.NET Core 3.1 см. на странице dotnet/aspnetcore#14806.
Рекомендуемое действие
Приложения, для которых требуются сертификаты клиентов, должны использовать netsh.exe для присвоения параметру clientcertnegotiation
значения enabled
. Дополнительные сведения см. в разделе Команды netsh http.
Если необходимо включить сертификаты клиентов только для некоторых частей приложения, см. инструкции в разделе Дополнительные сертификаты клиента.
Если необходимо вернуть предыдущее поведение при повторном согласовании, задайте для HttpSysOptions.ClientCertificateMethod
старое значение ClientCertificateMethod.AllowRenegotiate
. Этот способ не рекомендуется по причинам, описанным выше и в соответствующем руководстве.