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.

После того, как вы заставите это работать, вам также придется иметь дело с ключами подписи ключей и ключами защиты данных.

Другие вопросы по тегам