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

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

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

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

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

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

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

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

Пример:

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

Подготовка

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

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

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

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

  • Как использовать интерфейс 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 с разделением двоеточием, как показано на рисунке ниже.

    Пример шифров

  6. Нажмите Сохранить.

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

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

  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 Update a virtual host (Обновить виртуальный хост), как показано ниже.

    Пользователь общедоступного облака:

    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. Выполните API Get virtual host (Получить виртуальный хост), чтобы получить конфигурацию 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. На маршрутизаторе найдите свойство conf_load_balancing_load.balancing.driver.server.ssl.ciphers с помощью утилиты поиска Apigee из папки /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.