Como configurar pacotes de criptografia em hosts e roteadores virtuais

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Neste documento, explicamos como configurar conjuntos de algoritmos de criptografia em hosts virtuais e roteadores no Apigee Edge.

Um conjunto de criptografias é um conjunto de algoritmos que ajudam a proteger uma conexão de rede que usa TLS. O cliente e o servidor precisam concordar com o pacote de criptografia específico que será usado na troca de mensagens. Se o cliente e o servidor não concordarem com um conjunto de algoritmos de criptografia, as solicitações vão falhar com erros de handshake de TLS.

Na Apigee, os conjuntos de algoritmos de criptografia precisam ser acordados mutuamente entre os aplicativos clientes e os roteadores.

Talvez você queira modificar os conjuntos de algoritmos de criptografia no Apigee Edge pelos seguintes motivos:

  • Para evitar incompatibilidade de conjuntos de algoritmos de criptografia entre aplicativos clientes e roteadores da Apigee
  • Para usar conjuntos de algoritmos mais seguros e corrigir vulnerabilidades de segurança ou aumentar a segurança

Os conjuntos de algoritmos de criptografia podem ser configurados nos hosts virtuais ou nos roteadores da Apigee. O Apigee aceita conjuntos de algoritmos apenas no formato de strings de algoritmos OpenSSL no host virtual e no roteador. A página de manual de cifras do OpenSSL (em inglês) fornece os pacotes de criptografia SSL ou TLS da especificação relevante e os equivalentes do OpenSSL.

Por exemplo:

Se você quiser configurar o conjunto de cifras TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 no host virtual ou no roteador da Apigee, identifique a string de cifra OpenSSL correspondente na página de manual de cifras do OpenSSL. A string de criptografia do OpenSSL para o conjunto de criptografias TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 é ECDHE-RSA-AES128-GCM-SHA256.. Portanto, use a string de criptografia do OpenSSL ECDHE-RSA-AES128-GCM-SHA256 ao configurar o conjunto de criptografias no host virtual ou no roteador da Apigee.

Antes de começar

Como configurar conjuntos de criptografia em hosts virtuais

Esta seção explica como configurar conjuntos de algoritmos de criptografia nos hosts virtuais associados a uma organização e um ambiente. Os pacotes de criptografia podem ser configurados no host virtual usando a propriedade ssl_ciphers, que representa a lista de pacotes de criptografia compatíveis com o host virtual.

Consulte Pacotes de criptografia compatíveis para ver uma lista dos pacotes de criptografia compatíveis com a Apigee.

É possível configurar o host virtual usando um dos seguintes métodos:

  • Como usar a interface do Edge
  • Como usar a API Edge

Como usar a interface do Edge

Para configurar o host virtual usando a interface do Edge, faça o seguinte:

  1. Faça login na interface do Edge.
  2. Acesse Administrador > Hosts virtuais.
  3. Selecione um ambiente específico em que você quer fazer essa mudança.
  4. Selecione o host virtual específico para o qual você quer configurar os conjuntos de algoritmos de criptografia.
  5. Em Propriedades, atualize o valor Ciphers com uma lista de strings de criptografia OpenSSL delimitada por dois pontos.

    Por exemplo, se você quiser permitir apenas os conjuntos de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de cifra do OpenSSL correspondentes na página de manual OpenSSL ciphers, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia 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

    Adicione a string de criptografia do OpenSSL com separação por dois-pontos, conforme mostrado na figura a seguir:

    Exemplo de criptografias

  6. Salve a mudança.

Como usar a API do Edge

Para configurar os conjuntos de algoritmos em um host virtual usando a API do Edge, faça o seguinte:

  1. Receba a configuração atual do host virtual usando a API Get virtual host, conforme mostrado abaixo:

    Usuário da nuvem pública:

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

    Usuário da nuvem privada:

    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. Adicione a propriedade ssl_ciphers ao payload JSON da configuração de host virtual existente em properties com as strings de criptografia OpenSSL adequadas.

    Por exemplo, se você quiser permitir apenas os conjuntos de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de cifra do OpenSSL correspondentes na página de manual OpenSSL ciphers, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia 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

    Adicione o seguinte bloco de código properties:

    Exemplo de configuração atualizada do host virtual:

    {
      "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. Salve a configuração atualizada do host virtual em um arquivo. Exemplo: virtualhost-payload.json
  4. Atualize a configuração virtualhost com a mudança usando a API Atualizar um host virtual da seguinte maneira:

    Usuário da nuvem pública:

    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}

    Usuário da nuvem privada:

    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}

Pacotes de criptografia compatíveis

A Apigee é compatível com os seguintes pacotes de criptografia:

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

Como verificar conjuntos de algoritmos de criptografia em hosts virtuais

Esta seção explica como verificar se os conjuntos de algoritmos foram modificados com sucesso no host virtual usando a API Edge.

  1. Execute a API Get virtual host para receber a configuração virtualhost, conforme mostrado abaixo:

    Usuário da nuvem pública:

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

    Usuário da nuvem privada:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
  2. Verifique se a propriedade ssl_ciphers foi definida com o novo valor.

    Exemplo de configuração atualizada do host virtual:

    {
      "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
    }

    No exemplo acima, observe que ssl_ciphers foi definido com o novo valor.

  3. Se você ainda vir o valor antigo de ssl_ciphers, verifique se seguiu todas as etapas descritas em Configurar conjuntos de algoritmos de criptografia em hosts virtuais corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda não for possível atualizar ou adicionar conjuntos de algoritmos de criptografia ao host virtual, entre em contato com o suporte do Apigee Edge.

Como configurar pacotes de criptografia em roteadores

Esta seção explica como configurar conjuntos de algoritmos de criptografia nos roteadores. Os pacotes de criptografia podem ser configurados usando a propriedade do roteador conf_load_balancing_load.balancing.driver.server.ssl.ciphers, que representa os pacotes de criptografia aceitos separados por dois-pontos.

Para configurar conjuntos de algoritmos de criptografia nos roteadores, faça o seguinte:

  1. Na máquina do roteador, abra o seguinte arquivo em um editor. Se ele ainda não existir, crie-o.

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

    Por exemplo, para abrir o arquivo com vi, insira o seguinte:

    vi /opt/apigee/customer/application/router.properties
  2. Adicione uma linha no seguinte formato ao arquivo properties, substituindo um valor por colon_separated_cipher_suites:
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites

    Por exemplo, se você quiser permitir apenas os conjuntos de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de criptografia do OpenSSL correspondentes na página de manual OpenSSL ciphers, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia 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

    Em seguida, adicione a seguinte linha:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
  3. Salve as alterações.
  4. Verifique se esse arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  5. Reinicie o roteador conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Se você tiver mais de um roteador, repita as etapas acima em todos eles.

Verificar o pacote de criptografia nos roteadores

Nesta seção, explicamos como verificar se os conjuntos de algoritmos de criptografia foram modificados com sucesso nos roteadores.

  1. No roteador, procure a propriedade conf_load_balancing_load.balancing.driver.server.ssl.ciphers usando o utilitário de pesquisa da Apigee na pasta /opt/apigee e verifique se ela foi definida com o novo valor da seguinte maneira:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
  2. Se os novos conjuntos de algoritmos de criptografia forem definidos com êxito no roteador, o comando acima vai mostrar os novos valores.

    Confira abaixo o resultado de exemplo do comando search acima quando os conjuntos de algoritmos de criptografia foram atualizados para DHE-RSA-AES128-GCM-SHA256 e 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

    No exemplo de saída acima, observe que a propriedade conf_load_balancing_load.balancing.driver.server.ssl.ciphers foi definida com os novos valores de conjunto de algoritmos de criptografia. Isso indica que o pacote de criptografia foi atualizado para as strings de criptografia OpenSSL DHE-RSA-AES128-GCM-SHA25 e ECDHE-RSA-AES128-GCM-SHA256 no roteador.

  3. Se você ainda vir os valores antigos para conjuntos de algoritmos conf_load_balancing_load.balancing.driver.server.ssl.ciphers, verifique se seguiu todas as etapas descritas em Configurar conjuntos de algoritmos em roteadores corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda não for possível modificar os conjuntos de algoritmos de criptografia nos roteadores, entre em contato com o suporte do Apigee Edge.