Ответ об ошибке службы приложений Azure 502.5 при загрузке сертификата с использованием X509Certificate2

У меня есть приложение .NET Core, которое я пытаюсь развернуть в службе приложений Azure. Когда я развертываю и пытаюсь загрузить сайт, я получаю ответ об ошибке 502.5. Из того, что я читал, это означает, что это проблема с разрешениями. Я пытался распечатать журналы с помощью стандартного вывода, но пока он физически создает файлы журналов, все они пусты.

Поэтому я начал устранять проблему, комментируя код. ConfigureServices я загружаю сертификат:

var certificate = new X509Certificate2("mycertificate.pfx", "**********");

Если я закомментирую эту строку, то приложение загрузится. После возврата снова выдает ошибку.

Из консоли на портале Azure я попытался предоставить разрешения mycertificate.pfx с помощью chmod 777 mycertificate.pfx, но, похоже, это не оказало никакого влияния.

Я не уверен, что проблема в загрузке этого конкретного файла или вообще в использовании X509Certificate2.

Как я могу настроить его на работу?


person developer82    schedule 12.06.2017    source источник


Ответы (1)


Как я могу настроить его на работу?

1. Загрузите сертификат pfx в Azure с помощью портала Azure. Требуется план обслуживания B или выше. Как изменить тарифный план, см. в этом документ

введите здесь описание изображения

  1. Добавьте параметр приложения с именем WEBSITE_LOAD_CERTIFICATES со значением, равным отпечатку сертификата, что сделает его доступным для вашего веб-приложения.

У вас может быть несколько значений отпечатков, разделенных запятыми, или вы можете установить для этого значения значение « * » (без кавычек), и в этом случае все ваши сертификаты будут загружены в личное хранилище сертификатов ваших веб-приложений.

введите здесь описание изображения

3.Доступ из веб-приложения

   using System;
    using System.Security.Cryptography.X509Certificates;namespace UseCertificateInAzureWebsiteApp
    {
      class Program
      {
        static void Main(string[] args)
        {
          X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
          certStore.Open(OpenFlags.ReadOnly);
          X509Certificate2Collection certCollection = certStore.Certificates.Find(
                                     X509FindType.FindByThumbprint,
                                     // Replace below with your cert's thumbprint
                                     “E661583E8FABEF4C0BEF694CBC41C28FB81CD870”,
                                     false);
          // Get the first cert with the thumbprint
          if (certCollection.Count > 0)
          {
            X509Certificate2 cert = certCollection[0];
            // Use certificate
            Console.WriteLine(cert.FriendlyName);
          }
          certStore.Close();
        }
      }
    }

Дополнительную информацию можно получить на странице документ.

person Tom Sun - MSFT    schedule 13.06.2017