Я разрабатываю приложение ASP.net, размещенное в IIS. Мне нужно загрузить сертификат (.pfx) с простой строки Base64, используйте его один раз для запроса на сторонний API и распорядитесь его. Конечно, я не хочу создавать копию на диске или добавлять ее в любое постоянное хранилище.X509Certificate2 certificate = X509CertificateLoader
.LoadPkcs12(Convert.FromBase64String(certificateString), certificatePassword);
HttpClientHandler handler = new();
handler.ClientCertificates.Add(certificate);
HttpClient client = new(httpClientHandler);
HttpResponseMessage response = await client.SendAsync(request);
< /code>
И это работает, но по какой -то причине, только в среде отладки, когда я запускаю этот код напрямую формировать Visual Studio. Когда я развертываю приложение в IIS - оно перестает работать. Combinations; < /p>
< /li>
Reimpling сертификат, как показано здесь. />system.security.cryptography.cryptographicexception: ключ не действителен для использования в указанном состоянии. < /p>
< /blockquote>
system.security.cryptography.cryptographicexcept />system.net.http.httprequestexception: соединение SSL не может быть установлено, см. Внутреннее исключение. (0x8009030D): учетные данные, предоставленные для пакета, не были признаны < /p>
< /blockquote>
Какова разница между сертификатами обработки в режиме отладки и в IIS? LocalService < /code> работает, но я также получаю предупреждение: < /p>
microsoft.aspnetcore.dataprotection.keymanagement.xmlkeymanager
no xml encryptor. Ключ { Ключ } может сохраняться для хранения в незашифрованной форме. И если я попытаюсь установить x509keyStorageflags.ephemeralkeyset < /code>, я получу исключение: < /p>
system.net.http.httprequestexceptexception: ssl connection не может быть установлено, см. Внутреннее исключение. Аутентификация не удалась, потому что платформа не поддерживает эфемерные ключи.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... storing-it