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

По умолчанию TLS отключен для API управления, и вы получаете доступ к Edge Management API по протоколу HTTP, используя IP-адрес узла сервера управления и порт 8080. Пример:

http://ms_IP:8080

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

https://ms_IP:8443

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

Чтобы обеспечить шифрование трафика, поступающего в Management API и из него, настройте параметры в файле /opt/apigee/customer/application/management-server.properties.

Помимо конфигурации TLS, вы также можете управлять проверкой паролей (длиной и надежностью пароля), изменив файл management-server.properties.

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

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

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

Как настроить TLS

Измените файл /opt/apigee/customer/application/management-server.properties, чтобы управлять использованием TLS для трафика, поступающего в ваш Management API и исходящего из него. Если такого файла нет, создайте его.

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

  1. Создайте файл хранилища ключей JKS, содержащий сертификат TLS и закрытый ключ. Подробнее о настройке TLS/SSL для локальной версии Edge…
  2. Скопируйте JKS-файл хранилища ключей в каталог на узле сервера управления, например /opt/apigee/customer/application.
  3. Передайте право собственности на файл JKS пользователю apigee:
    chown apigee:apigee keystore.jks

    где keystore.jks – название файла хранилища ключей.

  4. Измените /opt/apigee/customer/application/management-server.properties, чтобы задать следующие свойства: Если такого файла нет, создайте его:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    где keyStore.jks – файл хранилища ключей, а obfuscatedPassword – обфусцированный пароль хранилища ключей. Информацию о том, как создать обфусцированный пароль, можно найти в статье Настройка TLS/SSL для локальной версии Edge.

  5. Перезапустите Edge Management Server с помощью следующей команды:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Теперь Management API поддерживает доступ по протоколу TLS.

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

В описанной выше процедуре Apigee рекомендует оставить conf_webserver_http.turn.off=false, чтобы новый интерфейс Edge мог продолжать вызывать Edge API по протоколу HTTP.

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

  1. Настройте доступ TLS к Management API, как описано выше.
  2. Убедившись, что TLS работает для Management API, измените /opt/apigee/customer/application/management-server.properties на следующее свойство:
    conf_webserver_http.turn.off=true
  3. Перезапустите сервер управления Edge, выполнив следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Обновите конфигурацию New Edge UI, чтобы подключиться к серверу управления по протоколу HTTPS. Задайте следующие свойства в файле конфигурации New Edge UI:
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    где port – порт, указанный ранее в conf_webserver_ssl.port (например, 8443).

  5. Примените обновленную конфигурацию к интерфейсу New Edge:
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    Подробные сведения о файле конфигурации New Edge UI можно найти в статье Как настроить New Edge UI. Чтобы настроить доступ к новому интерфейсу Edge по протоколу HTTPS, ознакомьтесь со статьей Настройка TLS для нового интерфейса Edge.

Свойства TLS для сервера управления

В таблице ниже перечислены все свойства TLS/SSL, которые можно задать в management-server.properties.

Свойства Описание

conf_webserver_http.port=8080

Значение по умолчанию – 8080.

conf_webserver_ssl.enabled=false

Чтобы включить или отключить TLS/SSL. Если для параметра TLS/SSL задано значение true, необходимо также задать свойства ssl.port и keystore.path.

conf_webserver_http.turn.off=true

Чтобы включить или отключить протокол HTTP вместе с HTTPS. Если вы хотите использовать только HTTPS, оставьте значение по умолчанию true.

conf_webserver_ssl.port=8443

Порт TLS/SSL.

Требуется, если включен TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

Путь к файлу хранилища ключей.

Требуется, если включен протокол TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

Используйте обфусцированный пароль в следующем формате: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

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

conf_webserver_keymanager.password=password

Если у вашего менеджера ключей есть пароль, введите его обфусцированную версию в следующем формате:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

Задайте настройки для хранилища доверия. Укажите, хотите ли вы принимать все сертификаты TLS/SSL (например, чтобы принимать нестандартные типы). Значение по умолчанию – false. Укажите путь к хранилищу доверия и введите обфусцированный пароль к нему в следующем формате:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

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

Шифры, удаленные с помощью черного списка, имеют приоритет над шифрами, включенными в белый список.

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

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

Однако если вы укажете черный список, этот фильтр будет переопределен и вам придется добавить в черный список все шифры по отдельности.

Информацию о наборах шифров и архитектуре криптографии можно найти в документации Oracle по архитектуре криптографии Java для поставщиков JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Целые числа, определяющие:

  • Размер кеша сеанса TLS/SSL (в байтах) для хранения информации о сеансах нескольких клиентов.
  • Время ожидания сеансов TLS/SSL (в миллисекундах).