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

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

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

Общие шаги по развертыванию проекта

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

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

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

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

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

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

Примечание.

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

  • Visual Studio
  • Шаблон Azure Resource Manager (шаблон ARM)
  • Средство непрерывной интеграции и непрерывной доставки (CI/CD), например Azure DevOps

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

Первые два этих шага необходимы для всех методов развертывания. Эти действия рассматриваются в разделе "Изменения кода". Остальные шаги также важны, но они не всегда требуют ручного вмешательства пользователя. Например, шаги могут выполняться автоматически средством, например 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-кодом:

    <?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-адреса для каждого отправленного файла.

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

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

    1. В поле "Расположение пакета/конфигурации/службы" выберите "Из большого двоичного объекта".

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

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

    4. Для поля Upload a service definition (.csdef) (and ServiceDefinition.csdef file) повторите подпросезону еще раз.

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

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

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

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

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

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