IdentityServer4 загрузка сертификатов в веб-приложении Linux в Azure

На данный момент у меня есть веб-приложение, которое работает в режиме разработчика, но я пытаюсь заставить его работать с самозаверяющим сертификатом в веб-приложении Linux в Azure. Я уже загрузил файл .pfx в Azure и загрузил его в контейнер, установив параметр приложения WEBSITE_LOAD_CERTIFICATES. Сначала пробовал пользоваться магазином, однако в Linux это не работает.

Вместо этого я уже смог найти файл, в который он загружен (в файл .p12), однако, когда я пытаюсь загрузить сертификат вручную, я получаю сообщение об ошибке error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure, которое, похоже, связано с паролем, но я несколько раз подтвердили, что пароль правильный.

Сообщение здесь содержит метод создания самозаверяющих ключей с использованием openssl и показывает ту же проблему.

Примечание. Загрузка сертификата работает как в Windows, так и в Ubuntu, но не в веб-приложении Linux в Azure.


person Jamie Mair    schedule 07.08.2020    source источник
comment
Как выглядит ваш код, добавляющий ключи подписи?   -  person Tore Nestenius    schedule 07.08.2020
comment
Когда я пытался загрузить его из файла: var cryptBytes = System.IO.File.ReadAllBytes($"/var/ssl/private/{Configuration["WEBSITE_LOAD_CERTIFICATES"]}.p12"); var cert = new X509Certificate2(cryptBytes, Configuration["CERT_PASSWORD"]); services.AddIdentityServer() .AddSigningCredential(cert) .AddApiAuthorization<ApplicationUser, ApplicationDbContext>();   -  person Jamie Mair    schedule 09.08.2020
comment
Когда я попытался разрешить IdentityServer найти и загрузить сертификат: Configuration["IdentityServer:Key:Type"] = "File"; Configuration["IdentityServer:Key:FilePath"] = $"/var/ssl/private/{Configuration["WEBSITE_LOAD_CERTIFICATES"]}.p12"; Configuration["IdentityServer:Key:Password"] = Configuration["CERT_PASSWORD"]; services.AddIdentityServer() .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(); Извинения за плохое форматирование.   -  person Jamie Mair    schedule 09.08.2020


Ответы (1)


Чтобы обойти это, я использовал сертификат, созданный с помощью Azure, с опцией «Создать управляемый сертификат службы приложений». Пароль, предоставленный при загрузке сертификата, представляет собой пустую строку ().

person Jamie Mair    schedule 10.08.2020