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

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

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

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

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

<ClientAuthEnabled>

Обеспечивает двустороннюю передачу TLS-трафика между Edge и API-клиентом или между Edge и целевым бэкэндом.

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

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

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

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

<CommonName>

Если указано, задается значение, по которому проверяется общее имя целевого сертификата. Это значение допустимо только для конфигураций 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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Edge для облака

    Чтобы изменить виртуальный хост и использовать ссылку на хранилище ключей, необходимо обратиться в службу поддержки 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?
  • Как вы собираетесь обновлять просроченные или истекающие сертификаты?

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

В таблице ниже представлены различные варианты конфигурации для клиентов облачных и частных облачных решений:

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

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

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

Обработка просроченных сертификатов

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

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

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

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

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

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

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

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

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

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

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

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

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

Для создания хранилища доверенных сертификатов (truststore) необходимо задать новое имя .

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

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

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

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

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

Для создания хранилища доверенных сертификатов (truststore) необходимо задать новое имя .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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