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

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

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

Узнать больше :

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

Создание и изменение виртуального хоста доступно для платных учетных записей только в 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-протокол ТЛС 1.2

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

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

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

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

  • CN — общее имя
  • SAN – альтернативное имя субъекта

В сети SAN или CN разрешены подстановочные знаки, например *.myco.net .

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

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

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

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

В большинстве примеров в этом разделе используется Edge API для создания или изменения виртуальных хостов, но вы можете создать виртуальный хост в пользовательском интерфейсе 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> указывают хранилище ключей и псевдоним ключа, используемые соединением 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. Создайте ссылку на хранилище ключей с помощью пользовательского интерфейса или API Edge. В ссылке указывается имя хранилища ключей и тип ссылки KeyStore . Дополнительную информацию о создании и изменении ссылок см. в разделе Работа со ссылками .

  5. Создайте виртуальный хост с помощью API создания виртуального хоста . Обязательно укажите правильную ссылку на хранилище ключей и псевдоним ключа. Чтобы использовать API, используйте следующий вызов POST API для создания хранилища ключей с именем 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

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

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

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

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

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

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

Прежде чем изменить значение ссылки:

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

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

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

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

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

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

  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 , чтобы перезапустить пограничные маршрутизаторы и завершить процесс.