Сбой использования сертификата PFX в службе приложений AzureC#

Место общения программистов C#
Ответить
Anonymous
 Сбой использования сертификата PFX в службе приложений Azure

Сообщение Anonymous »

Я использую Abp.io, и в .NET 8 он работает правильно со следующими строками кода:

Код: Выделить всё

if (!File.Exists(fileName))
{
throw new FileNotFoundException($"Signing certificate couldn't be found: {fileName}");
}

var certificate = new X509Certificate2(fileName, passPhrase, X509KeyStorageFlags.MachineKeySet);

builder.AddSigningCertificate(certificate);
builder.AddEncryptionCertificate(certificate);
Но при обновлении до Abp.io 9.0.3 и .NET 9 мне приходится обновлять эти строки, поскольку конструктор устарел, как описано здесь microsoft x509-сертификаты
Мой новый код теперь:

Код: Выделить всё

var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName);

if (!File.Exists(path))
{
throw new FileNotFoundException($"Signing certificate couldn't be found: {fileName}");
}

var certificate = X509CertificateLoader.LoadPkcs12FromFile(path, passPhrase, X509KeyStorageFlags.MachineKeySet);

builder.AddSigningCertificate(certificate);
builder.AddEncryptionCertificate(certificate);
Но это не работает в Службе приложений Azure, я получаю следующую ошибку:

System.Security. Cryptography.CryptographicException: система не может найти указанный файл.

Я проверил, что файл существует в правильном месте, и это так. Я также попытался добавить переменную среды WEBSITE_LOAD_USER_PROFILE к 1, ошибка другая, но все равно не работает

System. Security.Cryptography.CryptographicException: набор ключей не существует

Мне трудно понять, почему он работает в net8, но не в .NET 9, несмотря ни на что с помощью конструктора или метода Load.
Сертификат создается во время задачи построения конвейера с помощью команды

Код: Выделить всё

dotnet dev-certs https -v -ep openiddict.pfx -p $(passPhrase)
Он создает артефакт со всеми библиотеками DLL и сертификатом, а затем конвейер выпуска отправляет его в Службу приложений.

Подробнее здесь: https://stackoverflow.com/questions/793 ... rvice-fail
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»