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

По умолчанию вы получаете доступ к пользовательскому интерфейсу Edge через HTTP, используя IP-адрес узла сервера управления и порт 9000. Например:

http://ms_IP:9000

Альтернативно вы можете настроить доступ TLS к пользовательскому интерфейсу Edge, чтобы иметь к нему доступ в форме:

https://ms_IP:9443

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

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

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

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

Настроить TLS

Используйте следующую процедуру для настройки доступа TLS к пользовательскому интерфейсу управления:

  1. Создайте файл JKS хранилища ключей, содержащий сертификат TLS и закрытый ключ, и скопируйте его на узел сервера управления. Дополнительные сведения см. в разделе Настройка TLS/SSL для Edge On Premises .
  2. Выполните следующую команду для настройки TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Введите номер порта HTTPS, например, 9443.
  4. Укажите, хотите ли вы отключить HTTP-доступ к пользовательскому интерфейсу управления. По умолчанию пользовательский интерфейс управления доступен через HTTP через порт 9000.
  5. Введите алгоритм хранилища ключей. По умолчанию — JKS.
  6. Введите абсолютный путь к файлу JKS хранилища ключей.

    Сценарий копирует файл в каталог /opt/apigee/customer/conf на узле Management Server и меняет владельца файла на «apigee».

  7. Введите пароль хранилища ключей в виде открытого текста.
  8. Затем сценарий перезапускает пользовательский интерфейс управления Edge. После перезапуска пользовательский интерфейс управления поддерживает доступ по TLS.

    Вы можете увидеть эти настройки в /opt/apigee/etc/edge-ui.d/SSL.sh .

Использование файла конфигурации для настройки TLS

В качестве альтернативы описанной выше процедуре вы можете передать файл конфигурации команде на шаге 2 процедуры. Вам понадобится использовать этот метод, если вы хотите установить дополнительные свойства TLS .

Чтобы использовать файл конфигурации, создайте новый файл и добавьте следующие свойства:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Сохраните файл в локальном каталоге с любым именем. Затем используйте следующую команду для настройки TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

где configFile — полный путь к сохраненному вами файлу.

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

Если вы используете Edge для частного облака в операционной системе с поддержкой FIPS, вам следует использовать хранилище ключей PKCS12. Вы можете создать хранилище ключей PKCS12, используя стандартные команды OpenSSL. При использовании хранилища ключей PKCS12 установите KEY_ALGO=PKCS12 в файле конфигурации.

Настройте пользовательский интерфейс Edge, когда TLS завершается на балансировщике нагрузки

Если у вас есть балансировщик нагрузки, который перенаправляет запросы в пользовательский интерфейс Edge, вы можете прекратить соединение TLS на балансировщике нагрузки, а затем заставить балансировщик нагрузки пересылать запросы в пользовательский интерфейс Edge через HTTP. Эта конфигурация поддерживается, но вам необходимо соответствующим образом настроить балансировщик нагрузки и пользовательский интерфейс Edge.

Дополнительная настройка требуется, когда пользовательский интерфейс Edge отправляет пользователям электронные письма для установки пароля при создании пользователя или когда пользователь запрашивает сброс утерянного пароля. Это электронное письмо содержит URL-адрес, который пользователь выбирает для установки или сброса пароля. По умолчанию, если пользовательский интерфейс Edge не настроен на использование TLS, URL-адрес в созданном электронном письме использует протокол HTTP, а не HTTPS. Необходимо настроить балансировщик нагрузки и пользовательский интерфейс Edge для создания адреса электронной почты, использующего HTTPS.

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

X-Forwarded-Proto: https

Чтобы настроить пользовательский интерфейс Edge:

  1. Откройте файл /opt/apigee/customer/application/ui.properties в редакторе. Если файл не существует, создайте его:
    vi /opt/apigee/customer/application/ui.properties
  2. Установите следующее свойство в ui.properties :
    conf/application.conf+trustxforwarded=true
  3. Сохраните изменения в ui.properties .
  4. Перезапустите пользовательский интерфейс Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Установка дополнительных свойств TLS

Пользовательский интерфейс Edge поддерживает дополнительные свойства конфигурации TLS, которые можно использовать для установки следующего:

  • Протокол TLS по умолчанию
  • Список поддерживаемых протоколов TLS
  • Поддерживаемые алгоритмы TLS
  • Поддерживаемые шифры TLS

Эти дополнительные параметры доступны только в том случае, если вы установили следующее свойство конфигурации в файле конфигурации, как описано в разделе Использование файла конфигурации для настройки TLS :

TLS_CONFIGURE=y

В следующей таблице описаны эти свойства:

Свойство Описание
TLS_PROTOCOL Определяет протокол TLS по умолчанию для пользовательского интерфейса Edge. По умолчанию это TLS 1.2. Допустимые значения: TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Определяет список включенных протоколов в виде массива, разделенного запятыми. Например:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Обратите внимание, что вам нужно экранировать символ «.

По умолчанию все протоколы включены.

TLS_DISABLED_ALGO

Определяет отключенные наборы шифров, а также может использоваться для предотвращения использования ключей небольшого размера для установления связи TLS. Значения по умолчанию нет.

Значения, передаваемые в TLS_DISABLED_ALGO соответствуют разрешенным значениям для jdk.tls.disabledAlgorithms , как описано здесь . Однако при настройке TLS_DISABLED_ALGO необходимо избегать пробелов:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

Определяет список доступных шифров TLS в виде массива, разделенного запятыми. Например:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Обратите внимание, что вам нужно экранировать символ «.

Список включенных шифров по умолчанию:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Список доступных шифров можно найти здесь .

Отключение протоколов TLS

Чтобы отключить протоколы TLS, вам необходимо отредактировать файл конфигурации, описанный в разделе «Использование файла конфигурации для настройки TLS» , следующим образом:

  1. Откройте файл конфигурации в редакторе.
  2. Чтобы отключить один протокол TLS, например TLSv1.0, добавьте в файл конфигурации следующее:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Чтобы отключить несколько протоколов, например TLSv1.0 и TLSv1.1, добавьте в файл конфигурации следующее:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Сохраните изменения в файле конфигурации.
  4. Выполните следующую команду для настройки TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    где configFile — полный путь к файлу конфигурации.

  5. Перезапустите пользовательский интерфейс Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Используйте безопасные файлы cookie

Apigee Edge для частного облака поддерживает добавление флага secure в заголовок Set-Cookie для ответов из пользовательского интерфейса Edge. Если этот флаг присутствует, файлы cookie можно отправлять только по каналам с поддержкой TLS. Если его нет, то файл cookie может быть отправлен по любому каналу, независимо от того, является ли он безопасным или нет.

Файлы cookie без флага secure потенциально могут позволить злоумышленнику захватить и повторно использовать файл cookie или перехватить активный сеанс. Поэтому рекомендуется включить этот параметр.

Чтобы установить флаг secure для файлов cookie Edge UI:

  1. Откройте следующий файл в текстовом редакторе:
    /opt/apigee/customer/application/ui.properties

    Если файл не существует, создайте его.

  2. Установите для свойства conf_application_session.secure значение true в файле ui.properties , как показано в следующем примере:
    conf_application_session.secure=true
  3. Сохраните изменения.
  4. Перезапустите пользовательский интерфейс Edge с помощью утилиты apigee-serice , как показано в следующем примере:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

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

curl -i -v https://edge_UI_URL

Заголовок должен содержать строку, которая выглядит следующим образом:

Set-Cookie: secure; ...

Отключите TLS в пользовательском интерфейсе Edge.

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

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl