Como configurar pacotes de criptografia em hosts e roteadores virtuais

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Neste documento, explicamos como configurar pacotes de criptografia em hosts virtuais e roteadores na Apigee Edge.

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

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

É possível modificar os pacotes de criptografia no Apigee Edge pelos seguintes motivos:

  • Para evitar a incompatibilidade de pacotes de criptografia entre os aplicativos clientes e os roteadores da Apigee
  • Usar pacotes de criptografia mais seguros para corrigir vulnerabilidades ou aumentar a segurança.

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

Exemplo:

Se você quiser configurar o pacote de criptografia TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 no host virtual ou no roteador da Apigee, identifique a string de criptografia OpenSSL correspondente da página de manual de criptografias OpenSSL (em inglês). A string de criptografia OpenSSL para o pacote de criptografia TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 é ECDHE-RSA-AES128-GCM-SHA256.. Portanto, você precisa usar a string de criptografia OpenSSL ECDHE-RSA-AES128-GCM-SHA256 ao configurar o pacote de criptografia no host virtual ou no roteador da Apigee.

Antes de começar

Como configurar pacotes de criptografia em hosts virtuais

Nesta seção, explicamos como configurar pacotes de criptografia nos hosts virtuais associados a uma organização e um ambiente. Os pacotes de criptografia podem ser configurados no host virtual com a propriedade ssl_ciphers, que representa a lista de pacotes com suporte ao host virtual.

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

Configure 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 IU do Edge, faça o seguinte:

  1. Faça login na interface do usuário do Edge.
  2. Acesse Administrador > Hosts virtuais.
  3. Selecione um Ambiente específico em que você quer fazer essa alteração.
  4. Selecione o host virtual específico para configurar os pacotes de criptografia.
  5. Em Properties, atualize o valor Ciphers com uma lista de strings de criptografia do OpenSSL delimitada por dois pontos.

    Por exemplo, se você quiser permitir apenas os pacotes de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de criptografia OpenSSL correspondentes da página de manuais de criptografias OpenSSL, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia do 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 OpenSSL com separação por dois-pontos, conforme mostrado na figura abaixo:

    Exemplo de criptografia

  6. Salve a mudança.

Como usar a API Edge

Para configurar os pacotes de criptografia em um host virtual usando a API Edge, faça o seguinte:

  1. Encontre a configuração do host virtual atual usando a API Acessar host virtual, 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 de configuração do host virtual atual em properties com as strings de criptografia OpenSSL apropriadas.

    Por exemplo, se você quiser permitir apenas os pacotes de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de criptografia OpenSSL correspondentes da página de manuais de criptografias OpenSSL, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia do 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 bloco de código properties abaixo:

    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 com suporte

A Apigee oferece suporte aos 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 pacotes de criptografia em hosts virtuais

Nesta seção, explicamos como verificar se os pacotes de criptografia foram modificados no host virtual usando a API Edge.

  1. Execute a API Get virtual host para ver 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 o valor antigo de ssl_ciphers ainda aparecer, verifique se você seguiu todas as etapas descritas em Como configurar pacotes de criptografia em hosts virtuais corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda não for possível atualizar ou adicionar pacotes 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 pacotes de criptografia nos roteadores. Os pacotes de criptografia podem ser configurados por meio da 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 pacotes de criptografia nos roteadores, faça o seguinte:

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

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

    Por exemplo, para abrir o arquivo com vi, digite 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 pacotes de criptografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determine as strings de criptografia OpenSSL correspondentes da página de manuais de criptografias OpenSSL, conforme mostrado na tabela a seguir:

    Pacote de criptografia String de criptografia do 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 esta linha:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    
  3. Salve as mudanças.
  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 para todos eles.

Como verificar o pacote de criptografia em roteadores

Esta seção explica como verificar se os pacotes de criptografia foram modificados 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 da 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 pacotes de criptografia forem configurados corretamente no roteador, o comando acima vai mostrar os novos valores.

    Confira a seguir o exemplo de resultado do comando search acima, quando os pacotes 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 do pacote de criptografia. Isso indica que o pacote de criptografia foi atualizado com êxito 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 dos pacotes de criptografia conf_load_balancing_load.balancing.driver.server.ssl.ciphers, verifique se seguiu todas as etapas descritas em Como configurar pacotes de criptografia em roteadores corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda não for possível modificar os pacotes de criptografia nos roteadores, entre em contato com o suporte do Apigee Edge.