Включение обмена данными по протоколу HTTPS в Azure Облачные службы (расширенная поддержка)

Взаимодействие с Облачные службы Microsoft Azure (расширенная поддержка) осуществляется с помощью протокола HTTPS. В этой статье описывается, как включить обмен данными по протоколу HTTPS для Облачные службы (расширенная поддержка).

Предварительные требования

Общие действия по развертыванию проекта

Ниже приведены общие действия по развертыванию проекта Облачные службы (расширенная поддержка) в Azure.

  1. Подготовьте сертификат.

  2. Настройте проект.

  3. Упакуйте файл проекта в файлы определения службы (CSDEF), конфигурации службы (CSCFG) и пакета службы (CSPKG) облачной службы.

  4. При необходимости измените конфигурацию ресурса Облачные службы (расширенная поддержка). Например, можно внести одно из следующих изменений:

    1. Обновите URL-адрес пакета.
    2. Настройте параметр URL-адреса.
    3. Обновите параметр секретов операционной системы.
  5. Разверните и обновите новый проект в Azure.

Примечание.

Проект можно развернуть с помощью нескольких различных методов, например с помощью следующих средств:

Независимо от метода развертывания общие шаги развертывания совпадают.

Первые два из этих шагов необходимы для всех методов развертывания. Эти шаги рассматриваются в разделе Изменения кода . Остальные шаги также важны, но они не всегда требуют вмешательства пользователя вручную. Например, эти действия могут выполняться автоматически с помощью такого средства, как Visual Studio. Последние три из этих шагов рассматриваются в разделе Изменения конфигурации .

Изменения кода

Чтобы внести изменения в код для подготовки сертификата и настройки проекта, сделайте следующее:

  1. Следуйте инструкциям, чтобы отправить сертификат в хранилище ключей на шаге 6.

  2. Запишите отпечаток сертификата (40-значная шестнадцатеричная строка).

  3. В cscfg-файле конфигурации службы проекта добавьте отпечаток сертификата в роль, в которой вы хотите использовать сертификат. Например, если вы хотите использовать сертификат в качестве SSL-сертификата для взаимодействия с WebRole, можно добавить XML-код, похожий на следующий фрагмент кода для WebRole1 , в качестве первого дочернего элемента корневого ServiceConfiguration элемента:

    <Role name="WebRole1">
      <Instances count="1" />
      <Certificates>
        <Certificate
          name="Certificate1"
          thumbprint="0123456789ABCDEF0123456789ABCDEF01234567"
          thumbprintAlgorithm="sha1"
        />
      </Certificates>
    </Role>
    

    Вы можете настроить имя сертификата, но оно должно соответствовать имени сертификата, используемому в файле определения службы (CSDEF).

  4. В файле определения службы (CSDEF) добавьте следующие элементы.

    Родительский XPath Добавляемый элемент Атрибуты для использования
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding name, endpointName
    /ServiceDefinition/WebRole/Endpoints InputEndpoint имя, протокол, порт, сертификат
    /ServiceDefinition/WebRole Certificates/Certificate name, storeLocation, storeName, permissionLevel

    Элемент Certificates должен быть добавлен непосредственно после закрывающего Endpoints тега. Он не содержит атрибутов. Он содержит только дочерние Certificate элементы.

    Например, файл определения службы может выглядеть так:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="CSESOneWebRoleHTTPS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
      <WebRole name="WebRole1" vmsize="Standard_D1_v2">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
              <Binding name="HttpsIn" endpointName="HttpsIn" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="Certificate1" />
        </Endpoints>
        <Certificates>
          <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" />
        </Certificates>
      </WebRole>
    </ServiceDefinition>
    

    В этом примере файл определения службы изменяется для привязки входной конечной HttpsIn точки для протокола HTTPS через порт 443. Он использует Certificate1 сертификат для хранилища с именем My и расположением для только ограниченного или повышенного LocalMachine уровня разрешений. Имена сертификатов в элементах InputEndpoint и Certificate соответствуют друг другу. Они также соответствуют имени сертификата, который использовался в файле конфигурации службы (CSCFG-файл) на предыдущем шаге.

Изменения конфигурации

Инструкции по изменению конфигурации облачной службы различаются в зависимости от способа развертывания облачной службы. Эти инструкции отображаются на следующих вкладках. Каждая вкладка представляет разные методы развертывания.

Прежде чем продолжить, см. статью Развертывание Облачные службы Azure (расширенная поддержка) с помощью портал Azure. Затем выполните следующие действия, чтобы внести правильные изменения в конфигурацию с помощью портал Azure:

  1. Перейдите к записи блога, которая называется Миграция вручную из классической облачной службы в расширенную поддержку облачной службы с шаблоном ARM, и выполните шаги 7–9. В этих инструкциях показано, как выполнить следующие действия.

    • Упаковка проекта.

    • Отправьте файлы созданного пакета службы (<project-name.cspkg>) и конфигурации облачной службы (ServiceConfiguration.Cloud.cscfg) в контейнер учетной записи хранения для облачной службы.

      Примечание.

      Вам также потребуется отправить файл определения службы (ServiceDefinition.csdef), используя тот же процесс, который описан для двух других файлов.

    • Создайте URL-адрес подписанного URL-адреса подписанного URL-адреса url-адреса подписанного URL-адреса (SAS) для каждого отправленного файла.

  2. В портал Azure вернитесь на страницу Обзор облачной службы и выберите Обновить.

  3. На странице Обновление облачной службы внесите следующие изменения на вкладке Основные сведения :

    1. В поле Расположение пакета, конфигурации или службы выберите Из BLOB-объекта.

    2. В поле Отправка пакета (CSPKG, .zip) выполните следующие действия.

      1. Щелкните ссылку Обзор .
      2. Выберите учетную запись хранения и контейнер, в который вы отправили файлы.
      3. На странице контейнера выберите соответствующий файл (в данном случае <project-name.cspkg>) и нажмите кнопку Выбрать.
    3. Для поля Отправка конфигурации (CSCFG) (и файла ServiceConfiguration.Cloud.cscfg ) повторите подзадачи, описанные на предыдущем шаге.

    4. Для поля Отправка определения службы (CSDEF) (и файла ServiceDefinition.csdef ) повторите подпроцедуру еще раз.

  4. Перейдите на вкладку Конфигурация .

  5. В поле Хранилище ключей выберите хранилище ключей, в которое вы отправили сертификат (ранее в разделе Изменения кода ). После того как сертификат будет найден в выбранном хранилище ключей, в указанном сертификате отобразится состояниеНайдено.

  6. Чтобы развернуть только что настроенный проект, нажмите кнопку Обновить .

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

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.