Настройка виртуальных хостов для облака

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

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

Кто может создавать и изменять виртуальные хосты в облаке?

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

Например, платные клиенты могут:

  • Включите одностороннюю и двустороннюю TLS-защиту.
  • Укажите хранилище ключей/доверенных сертификатов, используемое виртуальным хостом.

Бесплатные и пробные учетные записи не могут создавать или изменять виртуальные хосты и ограничены виртуальными хостами, созданными для них во время регистрации в Edge. Для получения дополнительной информации о тарифных планах Edge см. https://apigee.com/api-management/#/pricing .

Требования к настройке виртуального хоста для облака

В таблице ниже приведено краткое описание требований для создания виртуального хоста:

Категория Требование Описание
Тип счета Оплаченный Бесплатные и пробные учетные записи не позволяют создавать или изменять виртуальные хосты.
роль пользователя администратор организации Создать виртуальный хост может только администратор организации или пользователь с пользовательской ролью, имеющий права на изменение виртуального хоста.
Количество виртуальных хостов максимум 20

В облачной среде количество виртуальных хостов в одной организации/среде ограничено максимум 20.

Примечание : Количество виртуальных хостов в частном облаке не ограничено.

В большинстве организаций/сред используются два виртуальных хоста: один для доступа по протоколу HTTP, а другой — по протоколу HTTPS. Если ваша организация/среда разрешает доступ с использованием разных доменных имен, вам могут потребоваться дополнительные виртуальные хосты.

Базовый URL Включает протокол При определении базового URL-адреса для виртуального хоста, будь то в пользовательском интерфейсе или с помощью API, необходимо указать протокол (например, "http://" или "https://") как часть URL-адреса.
Порт 443

Создать виртуальный хост можно только на порту 443.

Обратите внимание, что вы можете создать несколько виртуальных хостов на порту 443 при условии, что у них есть уникальные псевдонимы хостов и все они поддерживают TLS.

ТЛС Необходимый

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

Для использования сертификата необходим сертификат, подписанный доверенной организацией, такой как Symantec или VeriSign. Самоподписанный сертификат использовать нельзя.

Если вам необходим доступ по протоколу HTTP, обратитесь в службу поддержки Apigee Edge .

протокол TLS TLS 1.2

Edge in the Cloud поддерживает только TLS версии 1.2.

Псевдоним хоста Уникальная организация и атмосфера. Псевдоним хоста не существует для другой комбинации организации/среды.
Доменное имя Принадлежит клиенту

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

В частности, Edge проверяет следующую информацию в сертификате:

  • CN - Общее название
  • SAN - Альтернативное название предмета

В SAN или CN допускается использование символов-заменителей, например, *.myco.net .

Edge также проверяет, не истек ли срок действия сертификата.

Поддержка SNI в клиентском приложении Все клиентские приложения, обращающиеся к виртуальному хосту, должны поддерживать SNI.

Поддержка SNI необходима для всех приложений.

Создайте виртуальный хост с помощью браузера.

В большинстве примеров в этом разделе для создания или изменения виртуальных хостов используется API Edge, но вы можете создать виртуальный хост и в пользовательском интерфейсе Edge.

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

  1. Войдите на сайт apigee.com/edge .
  2. Выберите Администрирование > Виртуальные хосты .
  3. Выберите среду, например, производственную (prod) или тестовую (test) .
  4. Выберите + Виртуальный хост , чтобы создать виртуальный хост, или выберите имя существующего виртуального хоста, чтобы отредактировать его.
  5. Подробную информацию о заполнении полей виртуального хоста см. в таблице выше.

Определение виртуального хоста для одностороннего TLS

XML-объект, определяющий виртуальный хост. Например, следующий XML-объект определяет виртуальный хост для одностороннего TLS:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>

В этом определении вы:

  • Укажите имя как myTLSVHost . Используйте это имя для ссылки на виртуальный хост в API-прокси или в вызове API.
  • Укажите псевдоним хоста как api.myCompany.com . Это общедоступный домен, используемый для доступа к вашим API, как определено в DNS-записях и CNAME-записях.
  • Укажите номер порта как 443. Если этот параметр не указан, по умолчанию будет установлен порт 443.
  • При необходимости включите TLS.

    Элемент <Enable> устанавливается в значение true для включения одностороннего TLS, а элементы <KeyStore> и <KeyStore> указывают хранилище ключей и псевдоним ключа, используемые в TLS-соединении.

    Для включения двусторонней TLS-аутентификации установите параметр <ClientAuthEnabled> в значение true и укажите хранилище доверенных сертификатов с помощью элемента <TrustStore> . Хранилище доверенных сертификатов содержит информацию об издателе сертификата клиента и цепочку центров сертификации, что является обязательным условием.

    Примечание: Поскольку Edge изначально поддерживал SSL, тег, используемый для настройки TLS, называется <SSLInfo> .

Обратите внимание, что в настройках виртуального хоста можно задать дополнительные параметры. Справочную информацию по всем параметрам см. в разделе «Справочник по параметрам виртуального хоста» .

Определение способа указания имени хранилища ключей и хранилища доверенных сертификатов в виртуальном хосте.

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

    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>

Преимущество использования ссылки заключается в том, что вы можете изменить значение ссылки, чтобы изменить хранилище ключей, используемое виртуальным хостом, обычно потому, что срок действия сертификата в текущем хранилище ключей истекает в ближайшем будущем. Изменение значения ссылки не требует перезапуска маршрутизатора Edge Router. См. раздел «Работа со ссылками» для получения дополнительной информации о создании и изменении ссылок.

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

Ограничения на использование ссылок на хранилища ключей и хранилища доверенных сертификатов.

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

  • Использовать ссылки на хранилища ключей и доверенных сертификатов в виртуальных хостах можно только при поддержке SNI и завершении SSL-соединения на маршрутизаторах Apigee.
  • Если перед маршрутизаторами Apigee установлен балансировщик нагрузки, и вы завершаете TLS-соединение на балансировщике нагрузки, то вы не сможете использовать ссылки на хранилище ключей и хранилище доверенных сертификатов в виртуальных хостах.

Определение виртуального хоста для двустороннего TLS

Для включения двусторонней TLS-аутентификации установите для элемента <ClientAuthEnabled> значение true и укажите хранилище доверенных сертификатов, используя ссылку с элементом <TrustStore> . Хранилище доверенных сертификатов содержит информацию об издателе сертификата клиента и цепочку центров сертификации, что является обязательным условием. Клиент также должен быть правильно настроен для двусторонней TLS-аутентификации.

Для создания виртуального хоста для двустороннего TLS-соединения необходимо создать XML-объект, определяющий виртуальный хост:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
</VirtualHost>

В этом определении вы:

  • Включите двусторонний TLS, установив параметр <ClientAuthEnabled> в значение true.
  • Укажите ссылку на хранилище доверенных сертификатов с помощью элемента <TrustStore> . Хранилище доверенных сертификатов содержит информацию об издателе сертификата клиента и цепочку центров сертификации, что является обязательным условием.

Настройка виртуального хоста, использующего сертификат и ключ из бесплатной пробной версии Apigee.

Если у вас есть платная учетная запись Edge for Cloud и еще нет сертификата и ключа TLS, вы можете создать виртуальный хост, используя сертификат и ключ из бесплатной пробной версии Apigee. Это означает, что вы можете создать виртуальный хост, не создавая предварительно хранилище ключей.

Сертификат для бесплатной пробной версии Apigee предназначен для домена *.apigee.net . Следовательно, <HostAlias> виртуального хоста также должен иметь формат *.apigee.net .

Если вы используете двусторонний TLS, вам все равно необходимо установить элемент <ClientAuthEnabled> в true и указать хранилище доверенных сертификатов, используя ссылку с элементом <TrustStore> , как описано выше в разделе «Определение виртуального хоста для двустороннего TLS» .

В XML-объекте, определяющем виртуальный хост с использованием сертификата и ключа бесплатной пробной версии Apigee, элементы <KeyStore> и <KeyAlias> опущены, и вместо них добавлен элемент <UseBuiltInFreeTrialCert> , как показано ниже:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

Значение по умолчанию для элемента <UseBuiltInFreeTrialCert> — false.

Для двустороннего TLS-соединения определите виртуальный хост следующим образом:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

В пользовательском интерфейсе Edge при создании виртуального хоста выберите параметр «Использовать встроенный бесплатный пробный сертификат» , чтобы использовать бесплатный сертификат и ключ Apigee:

Выберите «Использовать встроенный бесплатный пробный сертификат».

Создание виртуального хоста

Для создания виртуального хоста выполните следующие действия:

  1. Создайте запись DNS и запись CNAME для вашего общедоступного домена, в данном примере api.myCompany.com , указывающую на [org]-[environment].apigee.net .
  2. Создайте и настройте хранилище ключей, в данном примере названное myTestKeystore , используя процедуру, описанную здесь: Создание хранилищ ключей и хранилища доверенных сертификатов с помощью пользовательского интерфейса Edge . В этом примере убедитесь, что хранилище ключей использует псевдоним myKeyAlias ​​для сертификата и закрытого ключа.
  3. Загрузите свой сертификат и ключ в хранилище ключей. Убедитесь, что доменное имя, указанное в вашем сертификате, совпадает с псевдонимом хоста, который вы хотите использовать для виртуального хоста.
  4. Создайте ссылку на хранилище ключей, используя пользовательский интерфейс Edge или API. В ссылке указывается имя хранилища ключей и тип ссылки — KeyStore . Дополнительную информацию о создании и изменении ссылок см. в разделе «Работа со ссылками» .

  5. Создайте виртуальный хост, используя API создания виртуального хоста . Убедитесь, что вы указали правильную ссылку на хранилище ключей и псевдоним ключа. Для использования API выполните следующий POST-запрос для создания хранилища ключей с именем myTLSVHost :
    curl -X POST -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
      </VirtualHost>' \
      -u orgAdminEmail:password

    Если вы используете двусторонний TLS с клиентом, установите параметр <ClientAuthEnabled> в значение true и укажите хранилище доверенных сертификатов с помощью элемента <TrustStore> . Клиент должен быть правильно настроен для двустороннего TLS, то есть в Edge должно быть хранилище доверенных сертификатов, содержащее информацию об издателе сертификата клиента и цепочке сертификатов. Создайте хранилище доверенных сертификатов, используя процедуру, описанную здесь: Создание хранилищ ключей и хранилищ доверенных сертификатов с помощью пользовательского интерфейса Edge .

  6. Если у вас уже есть прокси-серверы API, добавьте виртуальный хост к элементу <HTTPConnection> в ProxyEndpoint. Виртуальный хост автоматически добавляется ко всем новым прокси-серверам API. См. раздел «Настройка прокси-сервера API для использования виртуального хоста» .

После обновления API-прокси для использования виртуального хоста и создания записи DNS и записи CNAME для псевдонима хоста, вы можете получить доступ к API-прокси, как показано ниже:

https://api.myCompany.com/v1/{project-base-path}/{resource-path}

Например:

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

Изменение виртуального хоста

Для модификации существующего виртуального хоста платные клиенты облачных сервисов выполняют две основные задачи:

  1. Изменение значения ссылки на хранилище ключей или хранилище доверенных сертификатов.

    Примечание : После того, как вы настроите <KeyStore> или <TrustStore> для использования ссылки, вы можете изменить значение этой ссылки в любое время. Однако, если вы когда-либо захотите изменить <KeyStore> или <TrustStore> для использования другой ссылки или изменить псевдоним <KeyAlias> , вам необходимо обратиться в службу поддержки Apigee Edge .
  2. Изменение свойств TLS виртуального хоста.

Изменение значения ссылки

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

Перед изменением значения ссылки:

  1. Создайте новое хранилище ключей и загрузите сертификат и ключ, как описано в разделе «Создание хранилищ ключей и хранилища доверенных сертификатов с помощью пользовательского интерфейса Edge» . В новом хранилище ключей убедитесь, что вы используете то же имя для псевдонима ключа, что и в существующем хранилище ключей .
  2. При необходимости создайте новое хранилище доверенных сертификатов и загрузите сертификат, как описано в разделе «Создание хранилищ ключей и хранилища доверенных сертификатов с помощью пользовательского интерфейса Edge» .
  3. Измените ссылку, как описано в разделе «Работа со ссылками» .

Изменение свойств TLS виртуального хоста

Платные клиенты могут использовать API обновления виртуального хоста для обновления виртуального хоста. Этот API позволяет устанавливать все свойства виртуального хоста, описанные в справочнике свойств виртуального хоста .

При изменении виртуального хоста Edge выполняет проверку, аналогичную той, что выполняется при его создании. То есть, при изменении Edge проверяет следующее:

  • Домен, указанный в псевдониме хоста, не используется в другой организации и среде.
  • Вы являетесь владельцем доменного имени. В частности, Edge проверяет, соответствует ли следующая информация в сертификате псевдониму хоста:
    • CN - Общее название
    • SAN - Альтернативное название предмета
    • Edge проверяет, не истек ли срок действия сертификата.

Для изменения параметров виртуального хоста с помощью API Edge выполните следующие действия:

  1. Обновите виртуальный хост, используя API обновления виртуального хоста . При использовании API необходимо указать полное определение виртуального хоста в теле запроса, а не только те элементы, которые вы хотите изменить. В этом примере вы устанавливаете значение свойства proxy_read_timeout :

    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
        <Properties>
           <Property name="proxy_read_timeout">50</Property>
             </Properties>
      </VirtualHost>' \
      -u orgAdminEmail:password

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

Все новые виртуальные хосты для Edge в облаке используют ссылки на хранилище ключей и хранилище доверенных сертификатов. Ссылки позволяют изменять хранилище ключей и хранилище доверенных сертификатов без обращения в службу поддержки Apigee Edge .

Более старые виртуальные хосты в Apigee Edge могут быть не настроены на использование ссылок на хранилища ключей и доверенных сертификатов. В этом случае вы можете обновить виртуальный хост, чтобы он использовал ссылку.

Обновление виртуального хоста для использования ссылки

Для обновления виртуального хоста выполните следующие действия:

  1. При необходимости создайте новое хранилище ключей и загрузите сертификат, как описано в разделе «Создание хранилищ ключей и хранилища доверенных сертификатов с помощью пользовательского интерфейса Edge» . Если у вас уже есть хранилище ключей, вы можете настроить ссылку, указывающую на него.
  2. Создайте новую ссылку на хранилище ключей.
  3. При необходимости создайте новое хранилище доверенных сертификатов и загрузите сертификат. Если у вас уже есть хранилище доверенных сертификатов, вы можете настроить ссылку на него.
  4. Создайте новую ссылку на хранилище доверенных сертификатов.
  5. Обновите виртуальный хост, чтобы установить хранилище ключей, псевдоним, хранилище доверенных сертификатов и любые другие свойства TLS. Полезная нагрузка для вызова:
    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost  name="myTLSVHost">
            <HostAliases>
              <HostAlias>api.myCompany.com</HostAlias>
            </HostAliases>
            <Port>443</Port>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>true</ClientAuthEnabled>
              <KeyStore>ref://myKeyStore2Way</KeyStore>
              <KeyAlias>keyAlias</KeyAlias>
              <TrustStore>ref://myTrustStore2Way</TrustStore>
              <IgnoreValidationErrors>false</IgnoreValidationErrors>
            </SSLInfo>
          </VirtualHost>' \
        -u orgAdminEmail:pWord
  6. Для завершения процесса обратитесь в службу поддержки Apigee , чтобы перезагрузить маршрутизаторы Edge Routers.