Как настроить TLS для интерфейса управления

Edge for Private Cloud 4.19.01

По умолчанию доступ к пользовательскому интерфейсу управления Edge осуществляется по протоколу HTTP с использованием IP-адреса узла сервера управления и порта 9000. Пример:

http://ms_IP:9000

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

https://ms_IP:9443

В этом примере вы настраиваете доступ TLS для использования порта 9443. Однако этот номер порта не является обязательным для Edge – вы можете настроить сервер управления на использование других значений портов. Единственное требование – брандмауэр должен разрешать трафик через указанный порт.

Убедитесь, что порт TLS открыт

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

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

Настройте TLS

Чтобы настроить доступ к интерфейсу управления по протоколу TLS, выполните следующие действия:

  1. Сгенерируйте файл JKS хранилища ключей, содержащий сертификат TLS и закрытый ключ, и скопируйте его на узел сервера управления. Подробнее о настройке TLS/SSL для локальной версии Edge…
  2. Чтобы настроить TLS, выполните следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Введите номер порта HTTPS, например 9443.
  4. Укажите, нужно ли отключить доступ по протоколу HTTP к интерфейсу управления. По умолчанию интерфейс управления доступен по протоколу HTTP через порт 9000.
  5. Введите алгоритм хранилища ключей. По умолчанию используется JKS.
  6. Укажите абсолютный путь к файлу JKS хранилища ключей.

    Скрипт копирует файл в каталог /opt/apigee/customer/conf на узле сервера управления и меняет владельца файла на apigee.

  7. Введите пароль хранилища ключей в виде обычного текста.
  8. Затем скрипт перезапускает пользовательский интерфейс управления Edge. После перезапуска интерфейс управления будет поддерживать доступ по протоколу TLS.

    Эти настройки можно посмотреть в /opt/apigee/etc/edge-ui.d/SSL.sh.

Как настроить TLS с помощью файла конфигурации

В качестве альтернативы описанной выше процедуре вы можете передать файл конфигурации команде на шаге 2. Этот метод нужно использовать, если вы хотите задать необязательные свойства TLS.

Чтобы использовать файл конфигурации, создайте новый файл и добавьте следующие свойства:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

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

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

где configFile – полный путь к сохраненному файлу.

Как настроить Edge UI, если трафик TLS не идет дальше балансировщика нагрузки

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

Дополнительная настройка требуется, когда Edge UI отправляет пользователям электронные письма для установки пароля при создании пользователя или когда пользователь запрашивает сброс утерянного пароля. В этом письме содержится URL, по которому пользователь может перейти, чтобы задать или сбросить пароль. По умолчанию, если пользовательский интерфейс Edge не настроен на использование TLS, URL-адрес в сгенерированном электронном письме использует протокол HTTP, а не HTTPS. Вам необходимо настроить балансировщик нагрузки и Edge UI, чтобы сгенерировать адрес электронной почты, использующий HTTPS.

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

X-Forwarded-Proto: https

Чтобы настроить Edge UI, выполните следующие действия:

  1. Откройте файл /opt/apigee/customer/application/ui.properties в редакторе. Если файла нет, создайте его:
    vi /opt/apigee/customer/application/ui.properties
  2. Задайте следующее свойство в ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Сохраните изменения в файле ui.properties.
  4. Перезапустите Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Настройка необязательных свойств TLS

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

  • Протокол TLS по умолчанию
  • Список поддерживаемых протоколов TLS
  • Поддерживаемые алгоритмы TLS
  • Поддерживаемые шифры TLS

Эти необязательные параметры доступны, только если вы задали следующее свойство конфигурации в файле конфигурации, как описано в разделе Использование файла конфигурации для настройки TLS:

TLS_CONFIGURE=y

В таблице ниже описаны эти свойства.

Свойство Описание
TLS_PROTOCOL Определяет протокол TLS по умолчанию для Edge UI. По умолчанию используется TLS 1.2. Допустимые значения: TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Определяет список включенных протоколов в виде массива, разделенного запятыми. Пример:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Обратите внимание, что символ " нужно экранировать.

По умолчанию включены все протоколы.

TLS_DISABLED_ALGO

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

Значения, передаваемые в TLS_DISABLED_ALGO, соответствуют допустимым значениям для jdk.tls.disabledAlgorithms, как описано здесь. Однако при настройке TLS_DISABLED_ALGO необходимо экранировать пробелы:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

Определяет список доступных шифров TLS в виде массива, разделенного запятыми. Пример:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Обратите внимание, что символ " нужно экранировать.

Список шифров, включенных по умолчанию:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Список доступных шифров можно найти здесь.

Отключение протоколов TLS

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

  1. Откройте файл конфигурации в редакторе.
  2. Чтобы отключить один протокол TLS, например TLSv1.0, добавьте в файл конфигурации следующую строку:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Чтобы отключить несколько протоколов, например TLSv1.0 и TLSv1.1, добавьте в файл конфигурации следующее:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Сохраните изменения в файле конфигурации.
  4. Чтобы настроить TLS, выполните следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    где configFile – полный путь к файлу конфигурации.

  5. Перезапустите Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Используйте защищенные файлы cookie

Apigee Edge для Private Cloud поддерживает добавление флага secure в заголовок Set-Cookie для ответов из Edge UI. Если этот флаг присутствует, файл cookie можно отправлять только по каналам с поддержкой TLS. Если атрибут отсутствует, файл cookie можно передавать по любому каналу, независимо от того, защищен он или нет.

Файлы cookie без флага secure могут позволить злоумышленнику перехватить и повторно использовать файл cookie или захватить активный сеанс. Поэтому мы рекомендуем включить эту настройку.

Чтобы установить флаг secure для файлов cookie Edge UI, выполните следующие действия:

  1. Откройте в текстовом редакторе следующий файл:
    /opt/apigee/customer/application/ui.properties

    Если файла нет, создайте его.

  2. Задайте для свойства conf_application_session.secure значение true в файле ui.properties, как показано в примере ниже.
    conf_application_session.secure=true
  3. Сохраните изменения.
  4. Перезапустите Edge UI с помощью утилиты apigee-serice, как показано в примере ниже.
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Чтобы убедиться, что изменение работает, проверьте заголовки ответа из Edge UI с помощью утилиты, например curl. Пример:

curl -i -v https://edge_UI_URL

Заголовок должен содержать строку, похожую на следующую:

Set-Cookie: secure; ...

Как отключить TLS в Edge UI

Чтобы отключить TLS в Edge UI, используйте следующую команду:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl