Вот как мне удалось сделать это в Kestrel:
1. В Startup.cs:
var bytes = File.ReadAllBytes(certPath);
X509Certificate2 certificate = new X509Certificate2(bytes);
В httpclientfactory:
services.AddHttpClient ("ClientName"), client =>
{
client.BaseAddress = new Uri (Configuration.GetValue ("BConfigurations: BaseAddress"));
}). ConfigurePrimaryHttpMessageHandler (() => new HttpClientHandler
{
ClientCertificates = {сертификат},
ClientCertificateOptions = ClientCertificateOption.Manual
});
Но когда я публикую сборку на IIS, я получаю это исключение: (это никогда не происходило в Kestrel)
WindowsCryptographicException: указанный сетевой пароль не является
правильный Internal.Cryptography.Pal.CertificatePal.FilterPFXStore