Могу ли я загрузить сертификат клиента из Windows с .NET Core

У меня есть консольное приложение.NET Core, которое присоединяет сертификат клиента к HTTP-запросу следующим образом:

var handler = new HttpClientHandler
{
    ClientCertificateOptions = ClientCertificateOption.Manual,
    SslProtocols = SslProtocols.Tls12
};

handler.ClientCertificates.Add(new X509Certificate2(pfxFile, password));

Это работает, и я получаю действительный ответ от сервера.

Однако я бы предпочел, чтобы сертификат хранился в хранилище сертификатов Windows и прикреплялся автоматически.

Я установил сертификат как в свой личный список, так и в список доверенных корневых сертификатов и соответственно изменил код:

var handler = new HttpClientHandler
{
    ClientCertificateOptions = ClientCertificateOption.Automatic,
    SslProtocols = SslProtocols.Tls12
};

// handler.ClientCertificates.Add(new X509Certificate2(pfxFile, password));

Но теперь сервер отвечает статусом Unauthorized, поэтому я полагаю, что сертификат клиента игнорируется.

Это вообще возможно? И если да, то что я делаю не так?

Если это имеет значение, я все еще использую.NET Core 2.1, потому что мой код зависит от другого программного обеспечения, которое использует эту версию. Если требуется версия 3, дайте мне знать.

0 ответов

Другие вопросы по тегам