Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Клиент Cloud с платным аккаунтом может создать виртуальный хост в организации.
- О виртуальных хостах
- Настройка виртуальных хостов
- Настройка TLS
- Хранилища ключей и доверенные хранилища
Кто может создавать и изменять виртуальных хостов в облаке
Создавать и изменять виртуальных хостов можно только в платных аккаунтах 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 | Обязательно |
Вы можете создать только виртуальный хост, поддерживающий TLS через HTTPS. У вас уже должно быть хранилище ключей, а при необходимости – хранилище доверенных сертификатов, содержащее сертификат TLS и ключ. У вас должен быть сертификат, подписанный надежной организацией, например Symantec или VeriSign. Самозаверяющий сертификат использовать нельзя. Если вам нужен доступ по протоколу HTTP, обратитесь в службу поддержки Apigee Edge. |
| Протокол TLS | TLS 1.2 |
Edge в облаке поддерживает только TLS 1.2. |
| Псевдоним хоста | Уникальный в организации и среде | Псевдоним хоста не существует для другой комбинации организации и среды. |
| Доменное имя | Принадлежит клиенту |
Вы должны владеть доменным именем, указанным в виртуальном хосте. Edge проверяет, чтобы доменное имя, определенное псевдонимом хоста, соответствовало метаданным в сертификате TLS. В частности, Edge проверяет в сертификате следующие данные:
В SAN или CN можно использовать подстановочные знаки, например Edge также проверяет, не истек ли срок действия сертификата. |
| Поддержка SNI в клиентском приложении | Все клиентские приложения, обращающиеся к виртуальному хосту, должны поддерживать SNI. |
Поддержка SNI требуется для всех приложений. |
Как создать виртуальный хост с помощью браузера
В большинстве примеров в этом разделе для создания или изменения виртуальных хостов используется API Edge, но вы можете создать виртуальный хост в интерфейсе Edge.
Чтобы создать виртуальный хост с помощью интерфейса Edge:
- Войдите в аккаунт на сайте apigee.com/edge.
- Выберите Администрирование > Виртуальные хосты.
- Выберите среду, например prod или test.
- Нажмите + Виртуальный хост, чтобы создать виртуальный хост, или выберите название существующего виртуального хоста, чтобы изменить его.
- Подробную информацию о том, как заполнять поля виртуального хоста, можно найти в таблице выше.
Как задать виртуальный хост для одностороннего протокола 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. Подробнее о том, как работать с объектами…
Вы можете использовать только ссылку на хранилище ключей и хранилище доверенных сертификатов, но не на псевдоним. При изменении ссылки на хранилище ключей убедитесь, что псевдоним сертификата совпадает с псевдонимом в старом хранилище.
Ограничения на использование ссылок на хранилища ключей и доверенные хранилища
При использовании ссылок на хранилища ключей и доверенные хранилища необходимо учитывать следующее ограничение:
- Ссылки на хранилище ключей и хранилище доверенных сертификатов можно использовать в виртуальных хостах, только если вы поддерживаете 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 выберите вариант Use built-in free trial certificate (Использовать встроенный бесплатный пробный сертификат) при создании виртуального хоста, чтобы использовать бесплатный сертификат и ключ Apigee:

Как создать виртуальный хост
Чтобы создать виртуальный хост, выполните следующие действия:
- Создайте запись DNS и запись CNAME для общедоступного домена, в нашем примере –
api.myCompany.com, которая указывает на[org]-[environment].apigee.net. - Создайте и настройте хранилище ключей, в этом примере myTestKeystore, следуя инструкциям в разделе Создание хранилищ ключей и доверенных хранилищ с помощью интерфейса Edge. В этом примере убедитесь, что в хранилище ключей для сертификата и закрытого ключа используется псевдоним myKeyAlias.
- Загрузите сертификат и ключ в хранилище ключей. Убедитесь, что доменное имя, указанное в сертификате, соответствует псевдониму хоста, который вы хотите использовать для виртуального хоста.
-
Создайте ссылку на хранилище ключей с помощью интерфейса Edge или API. В ссылке указывается название хранилища ключей и тип ссылки
KeyStore. Подробнее о том, как работать с объектами… - Создайте виртуальный хост с помощью API Create a Virtual Host (Создать виртуальный хост). Убедитесь, что вы указали правильную ссылку на хранилище ключей и псевдоним ключа.
Чтобы использовать API, создайте хранилище ключей с именем myTLSVHost, отправив следующий вызов API POST:
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. Если у вас есть прокси 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 выполняют две основные задачи:
- Изменение значения ссылки на хранилище ключей или хранилище доверенных сертификатов.
Примечание. Если вы задали для свойства<KeyStore>или<TrustStore>использование ссылки, вы можете в любое время изменить значение этой ссылки. Однако если вы захотите изменить<KeyStore>или<TrustStore>, чтобы использовать другую ссылку, или изменить<KeyAlias>, чтобы использовать другой псевдоним, вам нужно будет обратиться в службу поддержки Apigee Edge. - Изменение свойств TLS виртуального хоста.
Изменение значения ссылки
Вы можете изменить значение ссылки, чтобы изменить хранилище ключей или хранилище доверенных сертификатов, используемое виртуальным хостом.
Прежде чем изменять значение ссылки:
- Создайте новое хранилище ключей и загрузите сертификат и ключ, как описано в разделе Создание хранилищ ключей и доверенных хранилищ с помощью интерфейса Edge. В новом хранилище ключей используйте то же название псевдонима ключа, что и в существующем хранилище.
- При необходимости создайте новое хранилище доверенных сертификатов и загрузите сертификат, как описано в разделе Создание хранилищ ключей и доверенных сертификатов с помощью интерфейса Edge.
- Измените ссылку, как описано в разделе Работа со ссылками.
Как изменить свойства TLS виртуального хоста
Платные клиенты могут использовать API Update a Virtual Host (Обновить виртуальный хост), чтобы обновить виртуальный хост. Этот API позволяет задать все свойства виртуального хоста, описанные в справочнике по свойствам виртуального хоста.
При изменении виртуального хоста Edge выполняет проверку, аналогичную той, которая выполняется при создании виртуального хоста. То есть при изменении Edge проверяет:
- Домен, указанный в псевдониме хоста, не используется в другой организации и среде.
- Вы владелец доменного имени. В частности, Edge проверяет, соответствует ли псевдоним хоста следующей информации в сертификате:
- CN – общее имя
- SAN – альтернативное имя субъекта
- Edge проверяет, не истек ли срок действия сертификата.
Чтобы изменить виртуальный хост с помощью Edge API, выполните следующие действия:
Обновите виртуальный хост, используя API Update a Virtual Host. При использовании 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 могут быть не настроены на использование ссылок для хранилищ ключей и доверенных хранилищ. В этом случае вы можете обновить виртуальный хост, чтобы использовать ссылку.
Как обновить виртуальный хост, чтобы использовать ссылку
Чтобы обновить виртуальный хост, выполните следующие действия:
- При необходимости создайте новое хранилище ключей и загрузите сертификат, как описано в разделе Создание хранилищ ключей и доверенных хранилищ с помощью интерфейса Edge. Если у вас уже есть хранилище ключей, вы можете настроить ссылку на него.
- Создайте новую ссылку на хранилище ключей.
- При необходимости создайте новое хранилище доверенных сертификатов и загрузите сертификат. Если у вас уже есть хранилище сертификатов, вы можете настроить ссылку на него.
- Создайте новую ссылку на хранилище доверенных сертификатов.
- Обновите виртуальный хост, чтобы задать хранилище ключей, псевдоним, хранилище доверенных сертификатов и другие свойства 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 - Чтобы перезапустить маршрутизаторы Edge и завершить процесс, обратитесь в службу поддержки Apigee.