#azure #azure-web-app-service #ssl-certificate #azure-ad-b2c #azure-ad-b2c-custom-policy
Вопрос:
Я пытаюсь развернуть приложение «Регистрация с приглашением по электронной почте» (https://github.com/azure-ad-b2c/samples/tree/master/policies/invite) в службе приложений на базе Linux. Я уже загрузил свой сертификат в виде файла PFX.
По этой ссылке(https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate-in-code#load-certificate-in-linuxwindows-containers) частные сертификаты в контейнерах Linux хранятся в файле /var/ssl/private.
Я дважды проверил и открыл сеанс SSH в своей службе приложений, и я нашел свой сертификат privete в этой папке: 4E*********************************B8.p12
Итак, мне нужно заменить этот фрагмент кода в HomeController и OidcController:
public HomeController(ILogger<HomeController> logger, IOptions<AppSettingsModel> appSettings, IWebHostEnvironment hostingEnvironment)
{
this.AppSettings = appSettings.Value;
this.HostingEnvironment = hostingEnvironment;
this._logger = logger;
// Sample: Load the certificate with a private key (must be pfx file)
SigningCredentials = new Lazy<X509SigningCredentials>(() =>
{
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
this.AppSettings.SigningCertThumbprint,
false);
// Get the first cert with the thumb-print
if (certCollection.Count > 0)
{
return new X509SigningCredentials(certCollection[0]);
}
throw new Exception("Certificate not found");
});
}
Согласно документации, я заменил его на:
public HomeController(ILogger<HomeController> logger, IOptions<AppSettingsModel> appSettings, IWebHostEnvironment hostingEnvironment)
{
string finalPath = $"/var/ssl/private/<MYCERTIFICATETHUMBPRINT>.p12";
var bytes = System.IO.File.ReadAllBytes(finalPath);
var cert = new X509Certificate2(bytes);
}
Но когда я пытаюсь отправить приглашение по электронной почте или пытаюсь открыть конечную точку метаданных (https://******.azurewebsites.net/.well-known/openid-configuration) Я получаю следующую ошибку:
Внутренняя ошибка сервера: При обработке запроса возникло необработанное исключение. Исключение NullReferenceException: Ссылка на объект не установлена на экземпляр объекта.
Не могли бы вы указать мне правильное направление?
Спасибо
Комментарии:
1. В какой именно строке произошло исключение ? Не могли бы вы предоставить более подробную информацию об ошибках ?