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

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

http://ms_IP:8080

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

https://ms_IP:8443

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

Чтобы обеспечить шифрование трафика, поступающего в 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 для трафика, поступающего в ваш API управления и исходящего из него. Если такого файла нет, создайте его.

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

  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, используя следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

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

  1. Настройте доступ TLS к API управления, как описано выше.
  2. Убедившись, что TLS работает для 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 следующие свойства:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

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

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

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

    В противном случае интерфейс Edge отклонит самоподписанный сертификат.

  6. Перезапустите интерфейс Edge, выполнив следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Использование хранилища ключей PKCS12 для операционных систем с поддержкой FIPS

Если вы используете Edge для частного облака в ОС с поддержкой FIPS, необходимо использовать хранилище ключей PKCS12. Это необходимо для соответствия стандартам FIPS. Помимо других стандартных конфигураций, упомянутых в этой статье, добавьте в файл management-server.properties следующую конфигурацию:

conf/webserver.properties+keystore.type=PKCS12

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

Свойства 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 (в миллисекундах).