ASP.NET Проверка сертификата основного пользовательского клиента не вызывалась

#.net #asp.net-core #asp.net-core-2.1 #client-certificates

#.net #asp.net-core #asp.net-core-2.1 #клиент-сертификаты

Вопрос:

Я пытаюсь реализовать проверку пользовательского сертификата клиента для настройки интеграционного теста. Я использую ASP.NET Ядро 2.1.последняя версия и Kestrel вот так:

 new WebHostBuilder()
  .UseKestrel(
    ok => ok.ConfigureHttpsDefaults(
      o =>
      {
        o.ClientCertificateMode = ClientCertificateMode.AllowCertificate;
        o.ClientCertificateValidation = RememberClientCertificate;
      }))
  [..]
  .UseUrls("https://localhost:5051")

[..]

private static bool RememberClientCertificate (X509Certificate2 clientCertificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
  LastClientCertificate = clientCertificate;
  return true;
}

  

Однако моя функция RememberClientCertificate никогда не вызывается. Независимо от того, отправляю я сертификат клиента или нет.

Что я делаю не так?

Комментарии:

1. Примечание: клиентский сертификат не является доверенным сервером, он самозаверяющий (доверие к сертификату, похоже, тоже не работает)

2. Не могли бы вы достичь какого-либо прогресса в решении этой проблемы?

3. Да, оказалось, я действительно не отправлял сертификат клиента. У нашего клиента был недостаток…

4. После вашего комментария я дважды проверил и вижу то же самое: ClientCertificate не задан в заголовке. В любом случае: отправляете ли вы запрос также из C #?

5. Мы использовали PowerShell, и это была проблема, связанная с тем, что блок скриптов не имеет доступа к внешним переменным без их передачи.