Могу ли я загрузить сертификат клиента из 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, дайте мне знать.