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.
3 ответа
Чтобы обойти это, я использовал сертификат, созданный с помощью Azure, с опцией "Создать управляемый сертификат службы приложений". Пароль, указанный при загрузке сертификата, представляет собой пустую строку ("").
Для меня решение IdentityServer4, размещенного на Linux в Azure, было в этой проблеме Github: https://github.com/IdentityServer/IdentityServer4/issues/4000
Метод
AddApiAuthorization()
перезаписывает
AddSigningCredential()
!
Кроме того, вы должны указать IssuerUrl:
services.AddIdentityServer(options =>
{
options.IssuerUri = "https://your.azurewebsites.net/";
})
Я предполагаю, что вы пытаетесь загрузить сертификат TLS/HTTPS и просто загрузить сертификат из файла P12, вы можете просто написать:
var rsaCert = new X509Certificate2("rs256.pfx", "edument"); //where edument is the password in this example.
После того, как вы заставите это работать, вам также придется иметь дело с ключами подписи ключей и ключами защиты данных.