Настройка наборов шифров на виртуальных хостах и ​​маршрутизаторах

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

В этом документе объясняется, как настроить наборы шифров на виртуальных хостах и ​​маршрутизаторах в Apigee Edge.

Набор шифров — это совокупность алгоритмов, обеспечивающих безопасность сетевого соединения, использующего протокол TLS. Клиент и сервер должны согласовать конкретный набор шифров, который будет использоваться при обмене сообщениями. Если клиент и сервер не согласятся с набором шифров, запросы завершатся ошибкой "TLS Handshake failed".

В Apigee наборы шифров должны быть согласованы между клиентскими приложениями и маршрутизаторами.

Возможно, вам потребуется изменить наборы шифров на сервере Apigee Edge по следующим причинам:

  • Во избежание несоответствия наборов шифров между клиентскими приложениями и маршрутизаторами Apigee, необходимо учитывать следующее:
  • Использование более надежных наборов шифров позволяет либо устранить уязвимости в системе безопасности, либо повысить уровень защиты.

Наборы шифров можно настроить как на виртуальных хостах, так и на маршрутизаторах Apigee. Обратите внимание, что Apigee принимает наборы шифров только в формате строк шифрования OpenSSL как на виртуальном хосте, так и на маршрутизаторе. В справочной странице шифров OpenSSL приведены наборы шифров SSL или TLS из соответствующей спецификации и их эквиваленты в OpenSSL.

Например:

Если вы хотите настроить набор шифров TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 на виртуальном хосте или маршрутизаторе Apigee, вам необходимо определить соответствующую строку шифра OpenSSL в справочной странице шифров OpenSSL . Строка шифра OpenSSL для набора шифров TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHE-RSA-AES128-GCM-SHA256. Таким образом, вам необходимо использовать строку шифра OpenSSL ECDHE-RSA-AES128-GCM-SHA256 при настройке набора шифров на виртуальном хосте или на маршрутизаторе Apigee.

Прежде чем начать

Настройка наборов шифров на виртуальных хостах

В этом разделе объясняется, как настроить наборы шифров на виртуальных хостах, связанных с организацией и средой. Наборы шифров можно настроить на виртуальном хосте с помощью свойства ssl_ciphers , которое представляет собой список наборов шифров, поддерживаемых виртуальным хостом.

Список поддерживаемых Apigee наборов шифров см. в разделе «Поддерживаемые наборы шифров».

Виртуальный хост можно настроить одним из следующих способов:

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

Использование пользовательского интерфейса Edge

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

  1. Войдите в пользовательский интерфейс Edge .
  2. Перейдите в раздел Администрирование > Виртуальные хосты .
  3. Выберите конкретную среду , в которой вы хотите внести это изменение.
  4. Выберите конкретный виртуальный хост, для которого вы хотите настроить наборы шифров.
  5. В разделе «Свойства» обновите значение параметра «Шифры» , указав список строк шифров OpenSSL, разделенных двоеточиями.

    Например, если вы хотите разрешить только наборы шифров TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 , то определите соответствующие строки шифров OpenSSL из справочной страницы шифров OpenSSL, как показано в следующей таблице:

    Набор шифров строка шифрования OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    Добавьте строку шифрования OpenSSL с разделителем-двоеточием, как показано на следующем рисунке:

    Ciphers example

  6. Сохраните сдачу.

Использование Edge API

Для настройки наборов шифров на виртуальном хосте с использованием API Edge выполните следующие действия:

  1. Получите текущую конфигурацию виртуального хоста, используя API Get virtual host , как показано ниже:

    Пользователь публичного облака:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}

    Пользователь частного облака:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    {
      "hostAliases": [
        "api.myCompany,com"
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  2. Добавьте свойство ssl_ciphers в существующую JSON-конфигурацию виртуального хоста в разделе properties , указав соответствующие строки шифрования OpenSSL.

    Например, если вы хотите разрешить только наборы шифров TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 , то определите соответствующие строки шифров OpenSSL из справочной страницы шифров OpenSSL, как показано в следующей таблице:

    Набор шифров строка шифрования OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    Добавьте следующий блок кода properties :

    Пример обновленной конфигурации виртуального хоста:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  3. Сохраните обновлённую конфигурацию виртуального хоста в файл. Например, virtualhost-payload.json .
  4. Обновите конфигурацию virtualhost внеся изменения, используя API обновления виртуального хоста следующим образом:

    Пользователь публичного облака:

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}

    Пользователь частного облака:

    curl -v -X POST Content-Type: application/json
    http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}

Поддерживаемые наборы шифров

Apigee поддерживает следующие наборы шифров:

ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-RSA-CAMELLIA256-SHA
AES256-GCM-SHA384
AES256-SHA256  
AES256-SHA
CAMELLIA256-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-RSA-CAMELLIA128-SHA
AES128-GCM-SHA256
AES128-SHA256   
AES128-SHA 
CAMELLIA128-SHA

Проверка наборов шифров на виртуальных хостах

В этом разделе объясняется, как проверить успешность изменения наборов шифров на виртуальном хосте с помощью Edge API.

  1. Выполните команду Get virtual host API, чтобы получить конфигурацию virtualhost , как показано ниже:

    Пользователь публичного облака:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}

    Пользователь частного облака:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
  2. Убедитесь, что свойству ssl_ciphers присвоено новое значение.

    Пример обновленной конфигурации виртуального хоста:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }

    В приведенном выше примере обратите внимание, что параметру ssl_ciphers присвоено новое значение.

  3. Если вы по-прежнему видите старое значение параметра ssl_ciphers , убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка наборов шифров на виртуальных хостах» . Если вы пропустили какой-либо шаг, повторите все шаги заново.
  4. Если вам по-прежнему не удается обновить или добавить наборы шифров на виртуальный хост, обратитесь в службу поддержки Apigee Edge .

Настройка наборов шифров на маршрутизаторах

В этом разделе объясняется, как настроить наборы шифров на маршрутизаторах. Наборы шифров можно настроить с помощью свойства маршрутизатора conf_load_balancing_load.balancing.driver.server.ssl.ciphers , которое представляет собой наборы шифров, разделённые двоеточиями.

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

  1. На маршрутизаторе откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.

    /opt/apigee/customer/application/router.properties

    Например, чтобы открыть файл с помощью vi , введите следующее:

    vi /opt/apigee/customer/application/router.properties
  2. Добавьте в файл properties строку следующего формата, заменив значение параметра colon_separated_cipher_suites :
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites

    Например, если вы хотите разрешить только наборы шифров TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 , то определите соответствующие строки шифров OpenSSL из справочной страницы шифров OpenSSL, как показано в следующей таблице:

    Набор шифров строка шифрования OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    А затем добавьте следующую строку:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
  3. Сохраните изменения.
  4. Убедитесь, что этот файл свойств принадлежит пользователю apigee , как показано ниже:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  5. Перезагрузите маршрутизатор, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Если у вас несколько маршрутизаторов, повторите описанные выше шаги на всех маршрутизаторах.

Проверка набора шифров на маршрутизаторах

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

  1. На маршрутизаторе с помощью утилиты поиска Apigee найдите свойство conf_load_balancing_load.balancing.driver.server.ssl.ciphers в папке /opt/apigee и проверьте, установлено ли для него новое значение, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
  2. Если новые наборы шифров успешно установлены на маршрутизаторе, то приведенная выше команда отобразит новые значения.

    Ниже приведён пример результата выполнения команды search , при которой наборы шифров были обновлены до DHE-RSA-AES128-GCM-SHA256 и ECDHE-RSA-AES128-GCM-SHA256 :

    Found key conf_load_balancing_load.balancing.driver.server.ssl.ciphers, with value, DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256, in /opt/apigee/customer//application/router.properties

    В приведенном выше примере обратите внимание, что свойство conf_load_balancing_load.balancing.driver.server.ssl.ciphers было установлено с новыми значениями набора шифров. Это указывает на то, что набор шифров был успешно обновлен до строк шифров OpenSSL DHE-RSA-AES128-GCM-SHA25 и ECDHE-RSA-AES128-GCM-SHA256 на маршрутизаторе.

  3. Если вы по-прежнему видите старые значения для наборов шифров conf_load_balancing_load.balancing.driver.server.ssl.ciphers , убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка наборов шифров на маршрутизаторах» . Если вы пропустили какой-либо шаг, повторите все шаги заново.
  4. Если вам по-прежнему не удается изменить наборы шифров на маршрутизаторах, обратитесь в службу поддержки Apigee Edge .