Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Edge позволяет создавать виртуальные хосты, поддерживающие односторонний и двусторонний TLS. При одностороннем TLS клиент отправляет запрос сеанса виртуальному хосту, развернутому на пограничном маршрутизаторе, и маршрутизатор отвечает сертификатом, содержащим открытый ключ виртуального хоста. Для подписанного сертификата клиент может затем отправить запрос в центр сертификации (CA) для проверки подлинности сертификата.
В двустороннем TLS и клиент, и Edge передают сертификаты, которые проверяются как часть запроса:
- Edge Router предоставляет свой сертификат TLS-клиенту для аутентификации. Затем клиент проверяет подлинность сервера перед отправкой своего сертификата на сервер.
- Клиент TLS предоставляет Edge свой сертификат для аутентификации.
Дополнительную информацию см. в разделе О виртуальных хостах .
Сбор информации о соединении TLS
Во время запроса к прокси-серверу API через виртуальный хост, поддерживающий TLS, Edge может собирать информацию о соединении TLS. Затем ваш прокси-сервер API может получить доступ к этой информации через переменные потока для выполнения дополнительного анализа и проверки.
Тип информации TLS, захватываемой Edge, зависит от того, поддерживает ли виртуальный хост односторонний или двусторонний TLS. Например, для одностороннего TLS Edge может собирать информацию о шифре TLS или протоколе TLS, используемом в соединении TLS.
Для двустороннего TLS Edge может собирать всю ту же информацию, что и для одностороннего TLS, а также собирать информацию о сертификате клиента. Например, Edge может захватывать отпечатки пальцев SHA1 сертификата клиента и сертификата клиента в формате PEM.
Сбор информации как для одностороннего, так и для двустороннего TLS.
В следующей таблице перечислены переменные потока, которые содержат информацию о соединении TLS, полученную Edge и доступную для доступа через прокси-сервер API. Эта информация собирается как для одностороннего, так и для двустороннего TLS путем установки для <ConnectionProperties>
значения true в определении виртуального хоста:
Переменная потока | Описание |
---|---|
tls.cipher | Шифр, используемый TLS-соединением. |
tls.protocol | Протокол, используемый TLS-соединением. |
tls.server.name | Запрошенное имя сервера SNI. |
tls.session.id | Идентификатор сеанса. Эта переменная потока доступна, если вы установили для |
Сбор дополнительной информации TLS во время двустороннего TLS.
В следующей таблице перечислены переменные потока, содержащие сведения о сертификате клиента, полученные Edge в двустороннем TLS. Эта информация собирается для двустороннего TLS, если для <ClientProperties>
установлено значение true в определении виртуального хоста:
Переменная потока | Описание |
---|---|
tls.client.s.dn | Отличительное имя (DN) субъекта сертификата клиента. |
tls.client.i.dn | Отличительное имя (DN) эмитента сертификата клиента. |
tls.client.raw.cert | Сертификат клиента в формате PEM. |
tls.client.cert.serial | Серийный номер сертификата клиента. |
tls.client.cert.fingerprint | Отпечаток SHA1 сертификата клиента. |
tls.session.id | Идентификатор сеанса. Эта переменная потока доступна, если для |
Настройка виртуального хоста для сбора информации TLS
Чтобы настроить виртуальный хост для сбора информации TLS, установите для следующих свойств в разделе <PropagateTLSInformation>
значение true
.
-
<ConnectionProperties>
: включите сбор информации о соединении TLS как для одностороннего, так и для двустороннего TLS. Значение по умолчанию —false
. -
<ClientProperties>
: включите сбор дополнительной информации для двустороннего TLS. Значение по умолчанию —false
.
Например, следующее определение виртуального хоста использует двусторонний TLS и позволяет собирать оба типа информации TLS:
<VirtualHost name="secure"> .... <SSLInfo> <Enabled>true</Enabled> # Enable two-way TLS. <ClientAuthEnabled>true</ClientAuthEnabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>ks-alias</KeyAlias> <KeyStore>ref://ks-ref</KeyStore> <TrustStore>ref://ts-ref</TrustStore> </SSLInfo> <PropagateTLSInformation> <ConnectionProperties>true</ConnectionProperties> <ClientProperties>true</ClientProperties> </PropagateTLSInformation> </VirtualHost>
Если вы передаете тело JSON, установите свойства как:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Установить ограничения на размер заголовка
Когда вы включаете сбор информации TLS на виртуальном хосте, Edge передает эту информацию с помощью заголовков HTTP. Поэтому вы должны убедиться, что ограничения размера заголовка установлены соответствующим образом в зависимости от того, используете ли вы Edge для облака или Edge для частного облака:
- Edge для облака : Apigee соответствующим образом устанавливает размеры заголовков.
- Edge для частного облака : функция недоступна.
Доступ к переменным потока в прокси-сервере API
Из вашего прокси-сервера API вы можете получить доступ и проверить переменные потока TLS. Например, вы можете использовать политику AssignMessage для доступа к ним, получить к ним доступ в JavaScript с помощью политики JavaScript.
Вы также можете ссылаться на переменные потока в элементе <Condition>
прокси- или целевого потока либо в <Step>
или <RouteRule>
. Например, вы можете направить запрос к различным целям в зависимости от серийного номера клиента.
Подробнее см.: