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

По умолчанию TLS отключен для API управления, и вы получаете доступ к API управления Edge через 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 управления. Если этот файл не существует, создайте его.

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

  1. Создайте файл JKS хранилища ключей, содержащий ваш сертификат TLS и закрытый ключ. Дополнительные сведения см. в разделе Настройка TLS/SSL для Edge On Premises .
  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 On Premises .

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

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

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

В приведенной выше процедуре 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 Management Server, выполнив следующую команду:
    /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. Только если вы использовали самозаверяющий сертификат (не рекомендуется в производственной среде) при настройке доступа TLS к API управления выше, добавьте следующее свойство в 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 могут длиться до истечения времени ожидания (в миллисекундах).