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

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

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

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

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

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

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

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

Например:

Если вы хотите настроить набор шифров TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 на виртуальном хосте или маршрутизаторе Apigee, вам необходимо идентифицировать соответствующую строку шифрования OpenSSL на странице руководства OpenSSL ciphers . Строка шифрования 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. В разделе «Свойства» обновите значение Ciphers , указав список строк шифрования 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

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

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

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

    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. Выполните 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 .

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

В этом разделе объясняется, как настроить наборы шифров на маршрутизаторах. Наборы шифров можно настроить с помощью свойства Router 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 .