Configurazione dei pacchetti di crittografia su host virtuali e router

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Questo documento spiega come configurare le suite di crittografia su host virtuali e router in Apigee Edge.

Una suite di crittografia è un insieme di algoritmi che aiutano a proteggere una connessione di rete che utilizza TLS. Il client e il server devono concordare la specifica suite di crittografia che verrà utilizzata nello scambio di messaggi. Se il client e il server non concordano una suite di crittografia, le richieste non vanno a buon fine a causa di errori di handshake TLS.

In Apigee, le suite di crittografia devono essere concordate reciprocamente tra le applicazioni client e i router.

Potresti voler modificare le suite di crittografia su Apigee Edge per i seguenti motivi:

  • Per evitare qualsiasi mancata corrispondenza delle suite di crittografia tra le applicazioni client e i router Apigee
  • Per utilizzare suite di crittografia più sicure per correggere eventuali vulnerabilità di sicurezza o per una maggiore sicurezza

Le suite di crittografia possono essere configurate sugli host virtuali o sui router Apigee. Tieni presente che Apigee accetta le suite di crittografia solo nel formato stringhe di crittografia OpenSSL sia nell'host virtuale che nel router. La pagina man delle cifrature OpenSSL fornisce le suite di crittografia SSL o TLS della specifica pertinente e i relativi equivalenti OpenSSL.

Ad esempio:

Se vuoi configurare la suite di crittografia TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 nell'host virtuale o nel router Apigee, devi identificare la stringa di crittografia OpenSSL corrispondente dalla pagina man di OpenSSL ciphers. La stringa di crittografia OpenSSL per la suite di crittografia TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 è ECDHE-RSA-AES128-GCM-SHA256.. Pertanto, devi utilizzare la stringa di crittografia OpenSSL ECDHE-RSA-AES128-GCM-SHA256 durante la configurazione della suite di crittografia nell'host virtuale o sul router Apigee.

Prima di iniziare

Configurazione delle suite di crittografia sugli host virtuali

Questa sezione spiega come configurare le suite di crittografia negli host virtuali associati a un'organizzazione e a un ambiente. Le suite di crittografia possono essere configurate nell'host virtuale tramite la proprietà ssl_ciphers, che rappresenta l'elenco delle suite di crittografia supportate dall'host virtuale.

Consulta la sezione Suite di crittografia supportate per un elenco delle suite di crittografia supportate da Apigee.

Puoi configurare l'host virtuale utilizzando uno dei seguenti metodi:

  • Utilizzo dell'interfaccia utente Edge
  • Utilizzo dell'API Edge

Utilizzo della UI di Edge

Per configurare l'host virtuale utilizzando la UI Edge:

  1. Accedi alla UI di Edge.
  2. Vai ad Amministrazione > Host virtuali.
  3. Seleziona un ambiente specifico in cui vuoi apportare questa modifica.
  4. Seleziona l'host virtuale specifico per cui vuoi configurare le suite di crittografia.
  5. In Proprietà, aggiorna il valore di Crittografie con un elenco di stringhe di crittografia OpenSSL delimitate da due punti.

    Ad esempio, se vuoi consentire solo le suite di crittografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determina le stringhe di crittografia OpenSSL corrispondenti dalla pagina man di OpenSSL ciphers come mostrato nella tabella seguente:

    Suite di crittografia Stringa di cifratura 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

    Aggiungi la stringa di cifratura OpenSSL con separazione tramite due punti, come mostrato nella figura seguente:

    Esempio di cifrari

  6. Salva la modifica.

Utilizzo dell'API Edge

Per configurare le suite di crittografia su un host virtuale utilizzando l'API Edge, segui questi passaggi:

  1. Ottieni la configurazione attuale dell'host virtuale utilizzando l'API Get virtual host come mostrato di seguito:

    Utente del cloud pubblico:

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

    Utente Private Cloud:

    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. Aggiungi la proprietà ssl_ciphers alla configurazione dell'host virtuale esistente payload JSON in properties con le stringhe di cifratura OpenSSL appropriate.

    Ad esempio, se vuoi consentire solo le suite di crittografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determina le stringhe di crittografia OpenSSL corrispondenti dalla pagina man di OpenSSL ciphers come mostrato nella tabella seguente:

    Suite di crittografia Stringa di cifratura 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

    Aggiungi il seguente blocco di codice properties:

    Esempio di configurazione dell'host virtuale aggiornata:

    {
      "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. Salva la configurazione dell'host virtuale aggiornata in un file. Ad esempio, virtualhost-payload.json.
  4. Aggiorna la configurazione di virtualhost con la modifica utilizzando l'API Aggiorna un host virtuale come segue:

    Utente del cloud pubblico:

    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}

    Utente Private Cloud:

    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}

Suite di crittografia supportate

Apigee supporta le seguenti suite di crittografia:

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

Verifica delle suite di crittografia sugli host virtuali

Questa sezione spiega come verificare che le suite di crittografia siano state modificate correttamente sull'host virtuale utilizzando l'API Edge.

  1. Esegui l'API Get virtual host per ottenere la configurazione virtualhost come mostrato di seguito:

    Utente del cloud pubblico:

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

    Utente Private Cloud:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
  2. Verifica che la proprietà ssl_ciphers sia stata impostata sul nuovo valore.

    Esempio di configurazione dell'host virtuale aggiornata:

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

    Nell'esempio precedente, tieni presente che ssl_ciphers è stato impostato con il nuovo valore.

  3. Se continui a visualizzare il vecchio valore per ssl_ciphers, verifica di aver seguito correttamente tutti i passaggi descritti in Configurazione delle suite di crittografia sugli host virtuali. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi.
  4. Se ancora non riesci ad aggiornare o aggiungere suite di crittografia all'host virtuale, contatta l'assistenza Apigee Edge.

Configurazione delle suite di crittografia sui router

Questa sezione spiega come configurare le suite di crittografia sui router. Le suite di crittografia possono essere configurate tramite la proprietà Router conf_load_balancing_load.balancing.driver.server.ssl.ciphers, che rappresenta le suite di crittografia accettate separate da due punti.

Per configurare le suite di crittografia sui router:

  1. Sulla macchina Router, apri il seguente file in un editor. Se non esiste già, crealo.

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

    Ad esempio, per aprire il file con vi, inserisci quanto segue:

    vi /opt/apigee/customer/application/router.properties
  2. Aggiungi una riga nel seguente formato al file properties, sostituendo un valore a colon_separated_cipher_suites:
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites

    Ad esempio, se vuoi consentire solo le suite di crittografia TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, determina le stringhe di crittografia OpenSSL corrispondenti dalla pagina di manuale delle crittografie OpenSSL come mostrato nella tabella seguente:

    Suite di crittografia Stringa di cifratura 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

    e poi aggiungi la seguente riga:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
  3. Salva le modifiche.
  4. Assicurati che questo file di proprietà appartenga all'utente apigee come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  5. Riavvia il router come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Se hai più di un router, ripeti i passaggi precedenti su tutti i router.

Verifica della suite di crittografia sui router

Questa sezione spiega come verificare che le suite di crittografia siano state modificate correttamente sui router.

  1. Sul router, cerca la proprietà conf_load_balancing_load.balancing.driver.server.ssl.ciphers utilizzando l'utilità di ricerca Apigee dalla cartella /opt/apigee e verifica se è stata impostata con il nuovo valore nel seguente modo:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
  2. Se le nuove suite di crittografia vengono impostate correttamente sul router, il comando precedente mostra i nuovi valori.

    Di seguito è riportato il risultato di esempio del comando search precedente quando le suite di crittografia sono state aggiornate a 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

    Nell'output di esempio riportato sopra, nota che la proprietà conf_load_balancing_load.balancing.driver.server.ssl.ciphers è stata impostata con i nuovi valori della suite di crittografia. Ciò indica che la suite di crittografia è stata aggiornata correttamente alle stringhe di crittografia OpenSSL DHE-RSA-AES128-GCM-SHA25 e ECDHE-RSA-AES128-GCM-SHA256 sul router.

  3. Se continui a visualizzare i vecchi valori per le suite di crittografia conf_load_balancing_load.balancing.driver.server.ssl.ciphers, verifica di aver seguito correttamente tutti i passaggi descritti in Configurazione delle suite di crittografia sui router. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi.
  4. Se ancora non riesci a modificare le suite di crittografia sui router, contatta l'assistenza Apigee Edge.