Варианты настройки TLS

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

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

  1. Доступ к вашим прокси-серверам API со стороны клиентов API. Используйте виртуальные хосты на пограничном маршрутизаторе для настройки TLS.
  2. Доступ к вашим серверным сервисам через Edge. Используйте целевые конечные точки и целевые серверы на пограничном процессоре сообщений для настройки TLS.

Оба этих типа доступа показаны ниже:

О настройке параметров TLS на виртуальном хосте или целевой конечной точке/целевом сервере

Виртуальный хост может быть представлен объектом XML в форме:

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Область виртуального хоста, которую вы изменяете для настройки TLS, определяется тегом <SSLInfo> . Тот же тег <SSLInfo> используется для настройки целевой конечной точки или целевого сервера.

В следующей таблице описаны элементы конфигурации TLS, используемые тегом <SSLInfo> :

Элемент Описание
<Включено>

Включает односторонний TLS между Edge и клиентом API или между Edge и целевым сервером.

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

<КлиентАутенаблед>

Включает двусторонний TLS между Edge и клиентом API или между Edge и целевым сервером.

Для включения двустороннего TLS обычно требуется настроить хранилище доверенных сертификатов в Edge.

<Хранилище ключей> Хранилище ключей.
<KeyAlias> Псевдоним, указанный при загрузке сертификата и закрытого ключа в хранилище ключей.
<Доверительное хранилище> Доверительный магазин.
<Игнорироватьошибки валидации>

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

Если при использовании с целевой конечной точкой/целевым сервером внутренняя система использует SNI и возвращает сертификат с отличительным именем (DN) субъекта, которое не соответствует имени хоста, игнорировать ошибку невозможно, и соединение завершается неудачей.

<ОбщееИмя>

Если указано, значение, по которому проверяется общее имя целевого сертификата. Это значение допустимо только для конфигураций TargetEndpoint и TargetServer. Это недействительно для конфигураций VirtualHost.

По умолчанию указанное значение точно соответствует общему имени целевого сертификата. Например, использование *.myhost.com в качестве значения для <CommonName> будет соответствовать и проверять целевое имя хоста только в том случае, если точное значение *.myhost.com указано в качестве общего имени в целевом сертификате.

При желании Apigee может выполнить сопоставление с подстановочными знаками, используя атрибут wildcardMatch .

Например, общее имя, указанное как abc.myhost.com в целевом сертификате, будет сопоставлено и проверено, если элемент <CommonName> указан следующим образом:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

О настройке элементов <KeyStore> и <TrustStore>

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

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

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

  • myKeystoreRef — это ссылка, содержащая имя хранилища ключей. В этом примере имя хранилища ключей — myKeystore .
  • myTruststoreRef — это ссылка, содержащая имя хранилища доверенных сертификатов. В этом примере имя хранилища доверенных сертификатов — myTruststore .

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

  • Для клиентов Cloud : изменение значения ссылки не требует обращения в службу поддержки Apigee Edge .
  • Для клиентов частного облака : изменение значения ссылки не требует перезапуска компонентов Edge, таких как маршрутизаторы и процессоры сообщений.

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

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

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

Третий вариант, только для целевых конечных точек/целевого сервера, — использовать переменные потока:

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

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

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

Клиенты платного облака и все клиенты частного облака, настраивающие TLS, должны учитывать следующее ограничение при использовании ссылок на хранилища ключей и доверенные хранилища:

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

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

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

  1. Край для облака

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

  2. Edge для частного облака

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

    1. Обновите виртуальный хост, чтобы использовать ссылку.
    2. Перезагрузите маршрутизаторы.
    Дополнительные сведения см. в разделе «Изменение виртуального хоста для использования ссылок на хранилище ключей и хранилище доверенных сертификатов» в разделе «Настройка доступа TLS к API для частного облака» .

Об использовании сертификата и ключа бесплатной пробной версии Apigee

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

Объект 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>

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

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

О настройке TLS

Два основных фактора определяют, как вы выполняете настройку TLS:

  • Вы являетесь клиентом Edge Cloud или Private Cloud?
  • Как вы собираетесь обновлять просроченные или истекающие сертификаты?

Варианты конфигурации облака и частного облака

В следующей таблице показаны различные варианты конфигурации для клиентов Cloud и Private Cloud:

Частное облако Облако
Виртуальный хост Полный контроль Полный контроль только для платных аккаунтов
Целевая конечная точка/целевой сервер Полный контроль Полный контроль

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

Все клиенты Cloud, как платные, так и пробные, имеют полный контроль над конфигурацией целевых конечных точек/целевых серверов. Кроме того, клиенты платного облака имеют полный контроль над виртуальными хостами, включая свойства TLS.

Обработка сертификатов с истекшим сроком действия

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

Когда истекает срок действия сертификата

В Edge вы храните сертификаты в одном из двух мест:

  • Хранилище ключей — содержит сертификат TLS и закрытый ключ, используемый для идентификации объекта во время установления связи TLS.
  • Хранилище доверенных сертификатов — содержит доверенные сертификаты клиента TLS, используемые для проверки сертификата сервера TLS, представленного клиенту. Эти сертификаты обычно представляют собой самозаверяющие сертификаты, сертификаты, подписанные доверенным центром сертификации, или сертификаты, используемые как часть двустороннего TLS.

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

  1. Создайте новое хранилище ключей.
  2. Загрузите новый сертификат в новое хранилище ключей , используя тот же псевдоним, что и в старом хранилище ключей.
  3. Обновите ссылку на своем виртуальном хосте или целевом сервере/целевой конечной точке, чтобы использовать новое хранилище ключей.

Когда срок действия сертификата в хранилище доверенных сертификатов истекает и вы используете ссылку на хранилище доверенных сертификатов , вы:

  1. Создайте новое хранилище доверенных сертификатов.
  2. Загрузите новый сертификат в новое хранилище доверенных сертификатов. Имя псевдонима не имеет значения для хранилищ доверенных сертификатов. Примечание . Если сертификат является частью цепочки, вам необходимо либо создать один файл, содержащий все сертификаты, и загрузить этот файл под один псевдоним, либо загрузить все сертификаты в цепочке отдельно в хранилище доверенных сертификатов, используя разные псевдонимы для каждого сертификата. .
  3. Обновите ссылку на своем виртуальном хосте или целевом сервере/конечной точке, чтобы использовать новое хранилище доверенных сертификатов.

Краткое описание способов обновления сертификата с истекшим сроком действия

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

  • Ссылки
  • Прямые имена
  • Переменные потока

Каждый из этих методов по-разному влияет на процесс обновления, как описано в следующей таблице. Как видите, ссылки обеспечивают максимальную гибкость для клиентов как Cloud, так и Private Cloud:

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

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

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

Перезапуск маршрутизатора или процессора сообщений не требуется.

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

Нет необходимости обращаться в службу поддержки Apigee.

Переменные потока (только целевая конечная точка) Для хранилища ключей создайте новое хранилище ключей с новым именем и псевдонимом с тем же именем или с новым именем.

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

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

Перезапуск маршрутизатора или процессора сообщений не требуется.

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

Нет необходимости обращаться в службу поддержки Apigee.

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

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

Для виртуальных хостов обратитесь в службу поддержки Apigee Edge , чтобы перезапустить маршрутизаторы.

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

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

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

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

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

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

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

Для виртуальных хостов обратитесь в службу поддержки Apigee Edge , чтобы перезапустить пограничные маршрутизаторы.

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