Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Прокси-сервер API функционирует как сопоставление общедоступной конечной точки с вашей внутренней службой. Виртуальный хост определяет способ, которым общедоступный прокси-сервер API предоставляется приложению. Например, виртуальный хост определяет, можно ли получить доступ к прокси-серверу API с помощью TLS. При настройке прокси-сервера API отредактируйте его определение ProxyEndpoint, чтобы настроить виртуальные хосты, которые он использует.
TargetEndpoint — это исходящий эквивалент ProxyEndpoint. TargetEndpoint функционирует как HTTP-клиент от Edge к серверной службе. При создании прокси-сервера API вы можете настроить его на использование нуля или более TargetEndpoints.
Узнать больше:
- О TLS/SSL
- Использование TLS с Edge
- О виртуальных хостах
- Хранилища ключей и доверенные хранилища
- Справочник по настройке прокси API
Настройка TargetEndpoint или TargetServer
Чтобы настроить TargetEndpoint, отредактируйте объект XML, который определяет TargetEndpoint. Вы можете изменить TargetEndpoint, отредактировав XML-файл, который определяет TargetEndpoint в вашем прокси-сервере API, или отредактировать его в пользовательском интерфейсе управления Edge.
Чтобы использовать пользовательский интерфейс управления Edge для редактирования TargetEndpoint:
- Войдите в пользовательский интерфейс управления Edge по адресу https://enterprise.apigee.com .
- Выберите имя прокси-сервера API для обновления.
- Выберите вкладку «Разработка» .
- В разделе «Целевые конечные точки» выберите «По умолчанию» .
- В области кода появится определение TargetEndpoint, подобное приведенному ниже:
<TargetEndpoint name="default"> <Description/> <FaultRules/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <Properties/> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://mocktarget.apigee.net</URL> </HTTPTargetConnection> </TargetEndpoint>
- Настройте хранилище доверенных сертификатов, как описано ниже в разделе «О настройке TLS с серверной частью» .
- Внесите любые изменения и сохраните прокси. Если прокси-сервер API был развернут, при его сохранении он будет повторно развернут с новыми настройками.
Обратите внимание, что определение TargetEndpoint содержит свойство name
. Значение свойства name
используется для настройки определения ProxyEndpoint прокси API для использования TargetEndpoint. Дополнительную информацию см. в справочнике по настройке прокси-сервера API .
TargetEndpoints можно настроить для ссылки на TargetServer, а не на явный целевой URL-адрес. Конфигурация TargetServer отделяет конкретные URL-адреса конечных точек от конфигураций TargetEndpoint. TargetServers используются для поддержки балансировки нагрузки и аварийного переключения между несколькими экземплярами внутреннего сервера.
Ниже показан пример определения TargetServer:
<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer>
На TargetServer ссылаются по имени в элементе <HTTPTargetConnection>
в определении TargetEndpoint. Вы можете настроить один или несколько именованных TargetServers, как показано ниже.
<TargetEndpoint name="default"> ... <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> ... </TargetEndpoint>
Дополнительные сведения см. в разделе Балансировка нагрузки на внутренних серверах .
О настройке TLS с серверной частью
Прежде чем настраивать TLS-доступ к бэкенду, следует понимать два важных момента:
- По умолчанию Edge не проверяет внутренний сертификат. Вам необходимо создать хранилище доверенных сертификатов, чтобы настроить Edge для проверки сертификата.
- Используйте ссылку, чтобы указать хранилище ключей или хранилище доверенных сертификатов, используемое Edge.
Оба соображения описаны ниже.
Определение хранилища доверенных сертификатов для включения проверки сертификатов
При выполнении запроса TLS через TargetEndpoint или TargetServer Edge по умолчанию не проверяет сертификат TLS, полученный от внутреннего сервера. Это означает, что Edge не проверяет , что:
- Сертификат подписан доверенным центром сертификации.
- Срок действия сертификата не истек.
- В сертификате указано общее имя. Если существует общее имя, Edge не проверяет, соответствует ли общее имя имени хоста, указанному в URL-адресе.
Чтобы настроить Edge для проверки серверного сертификата, необходимо:
- Создайте хранилище доверенных сертификатов в Edge.
- Загрузите сертификат сервера или цепочку сертификатов в хранилище доверенных сертификатов. Если сертификат сервера подписан третьей стороной, вам необходимо будет загрузить полную цепочку сертификатов, включая сертификат корневого центра сертификации, в хранилище доверенных сертификатов. Центры сертификации с неявным доверием отсутствуют.
- Добавьте хранилище доверенных сертификатов в определение TargetEndpoint или TargetServer.
Дополнительные сведения см. в разделах «Хранилища ключей» и «Хранилища доверенных сертификатов» .
Например:
<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint>
Использование ссылки на хранилище ключей или хранилище доверенных сертификатов
В приведенном ниже примере показано, как настроить TargetEndpoint или TargetServer для поддержки TLS. В рамках настройки TLS вы указываете хранилище доверенных сертификатов и хранилище ключей как часть определения TargetEndpoint или TargetServer.
Apigee настоятельно рекомендует использовать ссылку на хранилище ключей и хранилище доверенных сертификатов в определении TargetEndpoints или TargetServer. Преимущество использования ссылки заключается в том, что вам нужно всего лишь обновить ссылку, чтобы она указывала на другое хранилище ключей или хранилище доверенных сертификатов для обновления сертификата TLS.
Ссылки на хранилища ключей и хранилища доверенных сертификатов в определении TargetEndpoints или TargetServer работают так же, как и для виртуальных хостов .
Преобразование TargetEndpoint или TargetServer для использования ссылки
У вас могут быть существующие определения TargetEndpoint или TargetServer, в которых используются буквальные имена хранилища ключей и хранилища доверенных сертификатов. Чтобы преобразовать определение TargetEndpoint или TargetServer для использования ссылок:
- Обновите определение TargetEndpoint или TargetServer, чтобы использовать ссылку.
- Перезапустите пограничные процессоры сообщений:
- Для клиентов общедоступного облака обратитесь в службу поддержки Apigee Edge , чтобы перезапустить процессоры сообщений.
- Для клиентов частного облака перезапускайте пограничные процессоры сообщений по одному.
- Убедитесь, что ваш TargetEndpoint или TargetServer работает правильно.
Настройка одностороннего TLS для внутреннего сервера
При использовании определения TargetEndpoint настройка одностороннего доступа TLS от Edge (клиент TLS) к внутреннему серверу (сервер TLS) не требует какой-либо дополнительной настройки на Edge. Внутренний сервер должен правильно настроить TLS.
Вам нужно только убедиться, что элемент <URL>
в определении TargetEndpoint ссылается на серверную службу по протоколу HTTPS и что вы включили TLS:
<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint>
Если вы используете TargetServer для определения внутренней службы, включите TLS в определении TargetServer:
<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Однако если вы хотите, чтобы Edge проверял серверный сертификат, вам необходимо создать хранилище доверенных сертификатов, содержащее серверный сертификат или цепочку сертификатов. Затем вы указываете хранилище доверенных сертификатов в определении TargetEndpoint:
<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint>
Или в определении TargetServer:
<TargetServer name="target1"> <Host>mockserver.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> </TargetServer>
Чтобы настроить односторонний TLS:
- Если вы хотите проверить внутренний сертификат , создайте хранилище доверенных сертификатов в Edge и загрузите внутренний сертификат или цепочку ЦС, как описано в разделе Хранилища ключей и хранилища доверенных сертификатов . В этом примере, если вам нужно создать хранилище доверенных сертификатов, назовите его myTrustStore .
Если вы создали хранилище доверенных сертификатов, используйте следующий вызов API POST, чтобы создать ссылку с именем myTrustStoreRef на хранилище доверенных сертификатов, которое вы создали выше:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password
- Используйте пользовательский интерфейс управления Edge, чтобы обновить определение TargetEndpoint для прокси-сервера API (или, если вы определяете прокси-сервер API в XML, отредактируйте XML-файлы для прокси-сервера):
- Войдите в пользовательский интерфейс управления Edge по адресу https://enterprise.apigee.com .
- В меню пользовательского интерфейса управления Edge выберите API .
- Выберите имя прокси-сервера API для обновления.
- Выберите вкладку «Разработка» .
- В разделе «Целевые конечные точки» выберите «По умолчанию» .
- В области кода отредактируйте элемент
<HTTPTargetConnection>
, чтобы добавить элемент<SSLInfo>
. Обязательно укажите правильную ссылку на хранилище доверенных сертификатов и установите для<Enabled>
значение true:<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint>
- Сохраните прокси API. Если прокси-сервер API был развернут, при его сохранении он будет повторно развернут с новыми настройками.
Настройка двустороннего TLS для внутреннего сервера
Если вы хотите поддерживать двусторонний TLS между Edge (клиент TLS) и внутренним сервером (сервер TLS):
- Создайте хранилище ключей в Edge и загрузите сертификат Edge и закрытый ключ.
- Если вы хотите проверить внутренний сертификат, создайте хранилище доверенных сертификатов на Edge, содержащее сертификат и цепочку ЦС, полученные от внутреннего сервера.
- Обновите TargetEndpoint всех прокси-серверов API, которые ссылаются на внутренний сервер, чтобы настроить доступ TLS.
Использование псевдонима ключа для указания сертификата хранилища ключей
Вы можете определить несколько сертификатов, каждый со своим псевдонимом, в одном хранилище ключей. По умолчанию Edge использует первый сертификат, определенный в хранилище ключей.
При желании вы можете настроить Edge на использование сертификата, указанного в свойстве <KeyAlias>
. Это позволяет вам определить одно хранилище ключей для нескольких сертификатов, а затем выбрать тот, который вы хотите использовать в определении TargetServer. Если Edge не может найти сертификат с псевдонимом, соответствующим <KeyAlias>
, он использует действие по умолчанию: выбирает первый сертификат в хранилище ключей.
Пользователи Edge for Public Cloud должны обратиться в службу поддержки Apigee Edge, чтобы включить эту функцию.
Настройка двустороннего TLS
Чтобы настроить двусторонний TLS:
- Создайте хранилище ключей в Edge и загрузите сертификат и закрытый ключ, используя процедуру, описанную здесь: Хранилища ключей и хранилища доверенных сертификатов . В этом примере создайте хранилище ключей с именем myTestKeystore , которое использует псевдоним myKey для сертификата и закрытого ключа.
Используйте следующий вызов POST API, чтобы создать ссылку с именем myKeyStoreRef на хранилище ключей, созданное вами выше:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myKeyStoreRef"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password
В ссылке указывается имя хранилища ключей и тип ссылки
KeyStore
.Чтобы просмотреть ссылку, используйте следующий вызов GET API:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef / -u email:password
- Если вы хотите проверить внутренний сертификат , создайте хранилище доверенных сертификатов в Edge и загрузите цепочку сертификатов и центров сертификации, как описано здесь: Хранилища ключей и хранилища доверенных сертификатов . В этом примере, если вам нужно создать хранилище доверенных сертификатов, назовите его myTrustStore .
Если вы создали хранилище доверенных сертификатов, используйте следующий вызов API POST, чтобы создать ссылку с именем myTrustStoreRef на хранилище доверенных сертификатов, которое вы создали выше:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password
- Используйте пользовательский интерфейс управления Edge, чтобы обновить определение TargetEndpoint для прокси-сервера API (или, если вы определяете прокси-сервер API в XML, отредактируйте XML-файлы для прокси-сервера):
- Войдите в пользовательский интерфейс управления Edge по адресу https://enterprise.apigee.com .
- В меню пользовательского интерфейса управления Edge выберите API .
- Выберите имя прокси-сервера API для обновления.
- Выберите вкладку «Разработка» .
- В разделе «Целевые конечные точки» выберите «По умолчанию» .
- В области кода отредактируйте элемент
<HTTPTargetConnection>
, чтобы добавить элемент<SSLInfo>
. Обязательно укажите правильное хранилище ключей и псевдоним ключа и установите для элементов<Enabled>
и<ClientAuthEnabled>
значение true:<TargetEndpoint name="default"> ... <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeyStoreRef</KeyStore> <KeyAlias>myKey</KeyAlias> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> ... </TargetEndpoint>
- Сохраните прокси API. Если прокси-сервер API был развернут, при его сохранении он будет повторно развернут с новыми настройками.
Дополнительные сведения о параметрах, доступных в <TargetEndpoint>
, включая использование переменных для предоставления значений TargetEndpoint <SSLInfo>
, см. в справочнике по настройке прокси-сервера API .
Включение SNI
Edge поддерживает использование индикации имени сервера (SNI) от процессоров сообщений для целевых конечных точек в Apigee Edge для развертываний в облаке и частном облаке.
Для обеспечения обратной совместимости Edge для частного облака с существующими целевыми серверными модулями Apigee по умолчанию отключил SNI. Если ваш целевой сервер настроен на поддержку SNI, вы можете включить эту функцию. Дополнительную информацию см. в разделе «Использование SNI с Edge» .