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

Edge for Private Cloud версии 4.16.05

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

http://ms_IP:8080

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

https://ms_IP:8443

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

Чтобы обеспечить шифрование трафика, передаваемого в Management API и из него, задайте настройки в файле /<install_dir>/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

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

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

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

    где keystore.jks – название файла хранилища ключей.
  4. Измените файл /<install_dir>/apigee/customer/application/management-server.properties, чтобы задать следующие свойства. Если такого файла нет, создайте его:
    conf_webserver_ssl.enabled=true
    # Set next to true if all communications should be over HTTPS.
    # Не рекомендуется, поскольку многие внутренние вызовы Edge используют HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/tmp/keystore.jks
    # Введите обфусцированный пароль хранилища ключей ниже.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    где keyStore.jks – это файл хранилища ключей, а obfuscatedPassword – обфусцированный пароль хранилища ключей. Информацию о том, как создать обфусцированный пароль, можно найти в статье Настройка TLS/SSL для локальной версии Edge.
  5. Перезапустите Edge Management Server с помощью команды:
    $ /<install_dir>/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

  1. Настройте доступ TLS к Management API, как описано выше.
  2. Убедившись, что TLS работает для Management API, измените файл /<install_dir>/apigee/customer/application/management-server.properties, чтобы задать следующее свойство:
    conf_webserver_http.turn.off=true
  3. Перезапустите Edge Management Server с помощью команды:
    $ /<install_dir>/apigee/apigee-service/bin/apigee-service edge-management-server restart
  4. Измените файл /<install_dir>/apigee/customer/application/ui.properties, чтобы задать следующее свойство для Edge UI. Если такого файла нет, создайте его:
    conf_apigee_apigee.mgmt.baseurl="https://MS_IP:8443/v1"

    где MS_IP – это IP-адрес сервера управления, а номер порта – это порт, указанный выше в conf_webserver_ssl.port.
  5. Если вы использовали самозаверяющий сертификат при настройке доступа TLS к Management API, добавьте в файл ui.properties следующее свойство:
    conf/application.conf+ws.acceptAnyCertificate=true

    В противном случае Edge UI отклонит самозаверяющий сертификат.
  6. Перезапустите Edge UI с помощью команды:
    $ /<install_dir>/apigee/apigee-service/bin/apigee-service edge-ui restart

Свойства 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=

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

conf_webserver_cert.alias=

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

conf_webserver_keymanager.password=

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

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

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

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

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

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

http://docs.oracle.com/javase/8/docs/technotes/
guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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