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

По умолчанию 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 и из него, задайте настройки в файле /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

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

Чтобы настроить доступ 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 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, измените /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. Измените /opt/apigee/customer/application/ui.properties, чтобы задать следующее свойство для Edge UI:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    где FQ_domain_name – полное доменное имя, указанное в сертификате сервера управления, а port – порт, заданный в параметре conf_webserver_ssl.port.

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

  5. Только если вы использовали самозаверяющий сертификат (не рекомендуется в рабочей среде) при настройке доступа TLS к Management API выше, добавьте следующее свойство в ui.properties:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    В противном случае интерфейс Edge отклонит самозаверяющий сертификат.

  6. Перезапустите Edge UI, выполнив следующую команду:
    /opt/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=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_webserver_exclude.cipher.suites=CIPHER_SUITE_1 CIPHER_SUITE_2

conf_webserver_include.cipher.suites=

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

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

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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