По умолчанию доступ к интерфейсу Edge осуществляется по протоколу HTTP с использованием IP-адреса узла сервера управления и порта 9000. Пример:
http://ms_IP:9000
Вы также можете настроить доступ к интерфейсу Edge по протоколу TLS, чтобы использовать его в следующем формате:
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, выполните следующие действия:
- Создайте файл хранилища ключей JKS, содержащий сертификат TLS и закрытый ключ, и скопируйте его в узел сервера управления. Подробнее о том, как настроить TLS/SSL для локальной версии Edge…
- Чтобы настроить TLS, выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
- Введите номер порта HTTPS, например 9443.
- Укажите, нужно ли отключить доступ по протоколу HTTP к интерфейсу управления. По умолчанию доступ к интерфейсу управления осуществляется через HTTP по порту 9000.
- Введите алгоритм хранилища ключей. По умолчанию используется формат JKS.
- Укажите абсолютный путь к файлу хранилища ключей JKS.
Скрипт копирует файл в каталог
/opt/apigee/customer/confна узле сервера управления и передает право собственности на файл пользователю apigee. - Введите пароль хранилища ключей в виде обычного текста.
- После этого скрипт перезапускает интерфейс управления 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, если TLS завершается на балансировщике нагрузки
Если у вас есть балансировщик нагрузки, который перенаправляет запросы в интерфейс Edge, вы можете настроить завершение подключения TLS в балансировщике нагрузки, а затем перенаправлять запросы в интерфейс Edge по протоколу HTTP. Эта конфигурация поддерживается, но вам нужно настроить балансировщик нагрузки и интерфейс Edge.
Дополнительная конфигурация требуется, когда интерфейс Edge отправляет пользователям электронные письма с предложением задать пароль при создании аккаунта или при запросе на сброс забытого пароля. В этом письме будет URL, по которому пользователь сможет установить или сбросить пароль. По умолчанию, если в интерфейсе Edge не настроено использование TLS, URL в сгенерированном электронном письме использует протокол HTTP, а не HTTPS. Вам необходимо настроить балансировщик нагрузки и интерфейс Edge так, чтобы адрес электронной почты создавался с использованием протокола HTTPS.
Чтобы настроить балансировщик нагрузки, убедитесь, что он устанавливает следующий заголовок в запросах, пересылаемых в интерфейс Edge:
X-Forwarded-Proto: https
Чтобы настроить интерфейс Edge:
- Откройте файл
/opt/apigee/customer/application/ui.propertiesв редакторе. Если файла нет, создайте его:vi /opt/apigee/customer/application/ui.properties
- Задайте в свойстве
ui.propertiesследующее значение:conf/application.conf+trustxforwarded=true
- Сохраните изменения в файле
ui.properties. - Перезапустите интерфейс Edge:
/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. По умолчанию используется 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=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.
- Откройте файл конфигурации в редакторе.
- Чтобы отключить один протокол TLS, например TLSv1.0, добавьте в файл конфигурации следующие строки:
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1"
Чтобы отключить несколько протоколов, например TLSv1.0 и TLSv1.1, добавьте в файл конфигурации следующие строки:
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
- Сохраните изменения в файле конфигурации.
- Чтобы настроить TLS, выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile
где configFile – полный путь к файлу конфигурации.
- Перезапустите интерфейс Edge:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Используйте защищенные файлы cookie
Apigee Edge для частного облака поддерживает добавление флага secure в заголовок Set-Cookie для ответов из интерфейса Edge. Если этот флаг присутствует, то файлы cookie можно отправлять только по каналам с поддержкой TLS. Если его нет, то файлы cookie можно отправлять по любому каналу, независимо от того, защищен он или нет.
Файлы cookie без флага secure могут позволить злоумышленнику перехватить и повторно использовать файл cookie или взломать активный сеанс. Поэтому рекомендуется включить этот параметр.
Чтобы задать флаг secure для файлов cookie интерфейса Edge:
- Откройте в текстовом редакторе следующий файл:
/opt/apigee/customer/application/ui.properties
Если файла нет, создайте его.
- В файле
ui.propertiesзадайте для свойстваconf_application_session.secureзначениеtrue, как показано в примере ниже.conf_application_session.secure=true
- Сохраните изменения.
- Перезапустите интерфейс Edge с помощью утилиты
apigee-serice, как показано в следующем примере:/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Чтобы убедиться, что изменение работает, проверьте заголовки ответа из интерфейса Edge с помощью утилиты, например curl. Пример:
curl -i -v https://edge_UI_URL
Заголовок должен содержать строку, которая выглядит следующим образом:
Set-Cookie: secure; ...
Как отключить TLS в интерфейсе Edge
Чтобы отключить TLS в интерфейсе Edge, используйте следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl