Opzioni per la configurazione di TLS

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

Questo documento contiene una panoramica della configurazione di TLS su Edge per due aree funzionali:

  1. Accesso ai proxy API da parte dei client API. Utilizza gli host virtuali sul router Edge per configurare TLS.
  2. Accedere ai tuoi servizi di backend tramite Edge. Utilizza gli endpoint e i server di destinazione in Edge Message Processor per configurare TLS.

Entrambi questi tipi di accesso sono mostrati di seguito:

Informazioni su come impostare le opzioni TLS in un host virtuale o in un endpoint/server di destinazione

Un host virtuale può essere rappresentato da un oggetto XML nel seguente formato:

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

L'area dell'host virtuale che modifichi per configurare TLS è definita dal tag <SSLInfo>. Utilizza lo stesso tag <SSLInfo> per configurare un endpoint o un server di destinazione.

La tabella seguente descrive gli elementi di configurazione TLS utilizzati dal tag <SSLInfo>:

Elemento Descrizione
<Enabled>

Consente TLS unidirezionale tra Edge e il client API o tra Edge e il backend di destinazione.

Per un host virtuale, devi definire un archivio chiavi contenente il certificato e la chiave privata.

<ClientAuthEnabled>

Consente TLS bidirezionale tra Edge e il client API o tra Edge e il backend di destinazione.

L'attivazione di TLS bidirezionale in genere richiede la configurazione di un truststore su Edge.

<KeyStore> L'archivio chiavi.
<KeyAlias> L'alias specificato quando hai caricato un certificato e una chiave privata nell'archivio chiavi.
<TrustStore> L'archivio attendibilità.
<IgnoreValidationErrors>

Se il valore è true, Edge ignora gli errori dei certificati TLS. Valido per la configurazione di TLS per server target ed endpoint target e per la configurazione di host virtuali che utilizzano TLS bidirezionale. Il valore predefinito è false.

Se utilizzato con un endpoint/server di destinazione, se il sistema di backend utilizza SNI e restituisce un certificato con un DN (Distinguished Name) dell'oggetto che non corrisponde al nome host, non è possibile ignorare l'errore e la connessione non va a buon fine.

<CommonName>

Se specificato, un valore in base al quale viene convalidato il nome comune del certificato di destinazione. Questo valore è valido solo per le configurazioni TargetEndpoint e TargetServer. Non è valido per le configurazioni VirtualHost.

Per impostazione predefinita, il valore specificato corrisponde esattamente al nome comune del certificato target. Ad esempio, l'utilizzo di *.myhost.com come valore per <CommonName> corrisponderà e convaliderà l'hostname di destinazione solo se il valore esatto *.myhost.com è specificato come nome comune nel certificato di destinazione.

Facoltativamente, Apigee può eseguire la corrispondenza con i caratteri jolly utilizzando l'attributo wildcardMatch.

Ad esempio, un nome comune specificato come abc.myhost.com in un certificato target verrebbe associato e convalidato se l'elemento <CommonName> è specificato come segue:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

Informazioni sull'impostazione degli elementi <KeyStore> e <TrustStore>

Nell'esempio di host virtuale riportato sopra, il keystore e il truststore vengono specificati utilizzando reference, nel seguente formato:

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee consiglia vivamente di utilizzare sempre i riferimenti al keystore e al truststore. Un riferimento è una variabile che contiene il nome dell'archivio chiavi o del truststore, anziché specificare direttamente il nome dell'archivio chiavi. In questo esempio:

  • myKeystoreRef è un riferimento che contiene il nome dell'archivio chiavi. In questo esempio, il nome del keystore è myKeystore.
  • myTruststoreRef è un riferimento che contiene il nome del truststore. In questo esempio, il nome del truststore è myTruststore.

Quando un certificato scade, devi aggiornare l'host virtuale o l'endpoint/il server di destinazione per specificare il keystore o il truststore contenente il nuovo certificato. Il vantaggio di un riferimento è che puoi modificare il valore del riferimento per cambiare il keystore o il truststore senza dover modificare l'host virtuale o l'endpoint/il server di destinazione stesso:

  • Per i clienti Cloud: per modificare il valore del riferimento non è necessario contattare l'assistenza Apigee Edge.
  • Per i clienti Private Cloud: la modifica del valore del riferimento non richiede di riavviare i componenti Edge, come i router e gli elaboratori di messaggi.

In alternativa, puoi specificare direttamente il nome dell'archivio chiavi e dell'archivio attendibile:

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

Se specifichi direttamente il nome del keystore o del truststore, i clienti Cloud devono contattare l'assistenza Apigee Edge e i clienti Private Cloud devono riavviare determinati componenti Edge per aggiornare il certificato.

Una terza opzione, solo per gli endpoint/server di destinazione, è utilizzare le variabili di flusso:

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

Le variabili di flusso funzionano per gli endpoint/i server di destinazione e ti consentono di aggiornare il keystore o il truststore come riferimenti. Tuttavia, non funzionano con gli host virtuali e richiedono di passare informazioni su keystore, alias e truststore a ogni richiesta.

Restrizioni nell'utilizzo dei riferimenti a keystore e truststore

I clienti Cloud a pagamento e tutti i clienti Private Cloud che configurano TLS devono tenere conto della seguente limitazione quando utilizzano i riferimenti ai keystore e ai truststore:

  • Puoi utilizzare i riferimenti a keystore e truststore negli host virtuali solo se termini TLS sui router Apigee.
  • Se hai un bilanciatore del carico davanti ai router Apigee e termini TLS sul bilanciatore del carico, non puoi utilizzare i riferimenti a keystore e truststore negli host virtuali.

Se l'host virtuale esistente utilizza un nome letterale del keystore o del truststore

Gli host virtuali esistenti su Edge potrebbero non essere configurati per utilizzare i riferimenti per i keystore e i truststore. In questo caso, puoi aggiornare l'host virtuale in modo che utilizzi un riferimento.

  1. Edge per il cloud

    Per modificare l'host virtuale in modo che utilizzi un riferimento al keystore, devi collaborare con il team di assistenza di Apigee Edge.

  2. Edge per il Private Cloud

    Per convertire l'host virtuale in modo che utilizzi un riferimento:

    1. Aggiorna l'host virtuale in modo da utilizzare un riferimento.
    2. Riavviare i router.
    Per saperne di più, consulta "Modificare un host virtuale per utilizzare i riferimenti al keystore e al truststore" in Configurare l'accesso TLS a un'API per il Private Cloud.

Informazioni sull'utilizzo del certificato e della chiave della prova senza costi di Apigee

Se hai un account Edge for Cloud a pagamento e non disponi ancora di un certificato e di una chiave TLS, puoi creare un host virtuale che utilizzi il certificato e la chiave della prova senza costi di Apigee. Ciò significa che puoi creare l'host virtuale senza prima creare un keystore.

Un oggetto XML che definisce l'host virtuale utilizzando il certificato e la chiave di prova senza costi di Apigee omette gli elementi <KeyStore> e <KeyAlias> e li sostituisce con l'elemento <UseBuiltInFreeTrialCert>, come mostrato di seguito:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

Se esegui TLS bidirezionale, devi comunque impostare l'elemento <ClientAuthEnabled> su true e specificare un truststore utilizzando un riferimento con l'elemento <TrustStore>.

Per saperne di più, consulta Configurare gli host virtuali per il cloud.

Informazioni sulla configurazione di TLS

Esistono due fattori principali che determinano la modalità di configurazione di TLS:

  • Sei un cliente Edge Cloud o Private Cloud?
  • Come aggiornerai i certificati scaduti o in scadenza?

Opzioni di configurazione del cloud e del cloud privato

La tabella seguente mostra le diverse opzioni di configurazione per i clienti Cloud e Private Cloud:

Private Cloud Cloud
Host virtuale Controllo completo Controllo completo solo per gli account a pagamento
Endpoint/server di destinazione Controllo completo Controllo completo

I clienti di Private Cloud hanno il controllo completo sulla configurazione sia degli host virtuali sia degli endpoint/server di destinazione. Questo controllo include la possibilità di creare ed eliminare gli host virtuali e impostare tutte le proprietà su un host virtuale.

Tutti i clienti Cloud, sia a pagamento che in fase di valutazione, hanno il controllo completo sulla configurazione degli endpoint/server di destinazione. Inoltre, i clienti Cloud a pagamento hanno il controllo completo degli host virtuali, incluse le proprietà TLS.

Gestione dei certificati scaduti

Se un certificato TLS scade o se la configurazione del sistema cambia in modo che il certificato non sia più valido, devi aggiornarlo. Quando configuri TLS per un host virtuale o un endpoint/server di destinazione, devi decidere come eseguire l'aggiornamento prima di eseguire qualsiasi configurazione.

Quando un certificato scade

In Edge, puoi archiviare i certificati in due posizioni:

  • Archivio chiavi: contiene il certificato TLS e la chiave privata utilizzati per identificare la persona giuridica durante l'handshake TLS.
  • Truststore: contiene certificati attendibili su un client TLS utilizzati per convalidare il certificato di un server TLS presentato al client. In genere si tratta di certificati autofirmati, certificati firmati da un'autorità di certificazione attendibile o certificati utilizzati nell'ambito di TLS bidirezionale.

Quando un certificato in un keystore scade e utilizzi un riferimento all'archivio chiavi, non puoi caricare un nuovo certificato nell'archivio chiavi. Invece:

  1. Crea un nuovo magazzino chiavi.
  2. Carica il nuovo certificato nel nuovo keystore utilizzando lo stesso nome dell'alias del vecchio keystore.
  3. Aggiorna il riferimento nell'host virtuale o nel server di destinazione/nell'endpoint di destinazione per utilizzare il nuovo keystore.

Quando un certificato in un truststore scade e utilizzi un riferimento al truststore:

  1. Crea un nuovo truststore.
  2. Carica il nuovo certificato nel nuovo truststore. Il nome dell'alias non è importante per i magazzini attendibili. Nota: se un certificato fa parte di una catena, devi creare un singolo file contenente tutti i certificati e caricarlo in un singolo alias oppure caricare tutti i certificati della catena separatamente nel truststore utilizzando un alias diverso per ogni certificato.
  3. Aggiorna il riferimento nell'host virtuale o nel server/endpoint di destinazione per utilizzare il nuovo truststore.

Riepilogo dei metodi per aggiornare un certificato scaduto

Il metodo utilizzato per specificare il nome del keystore e del truststore nell'host virtuale o nell'endpoint/server di destinazione determina la modalità di aggiornamento del certificato. Puoi utilizzare:

  • Riferimenti
  • Nomi diretti
  • Variabili di flusso

Ognuno di questi metodi ha ripercussioni diverse sul processo di aggiornamento, come descritto nella tabella seguente. Come puoi vedere, i riferimenti offrono la massima flessibilità sia per i clienti Cloud sia per quelli Private Cloud:

Tipo di configurazione Come aggiornare/sostituire il certificato Private Cloud Cloud
Riferimento (consigliato) Per un archivio chiavi, crea un nuovo archivio chiavi con un nuovo nome e un alias con lo stesso nome del vecchio alias.

Per un truststore, crea un truststore con un nuovo nome.

Aggiorna il riferimento al keystore o al truststore.

Non è necessario riavviare il router o il Message Processor.

Aggiorna il riferimento al keystore o al truststore.

Non è necessario contattare l'assistenza Apigee.

Variabili di flusso (solo endpoint di destinazione) Per un archivio chiavi, crea un nuovo archivio chiavi con un nuovo nome e un alias con lo stesso nome o con un nuovo nome.

Per un truststore, crea un truststore con un nuovo nome.

Passa la variabile di flusso aggiornata a ogni richiesta con il nome del nuovo keystore, dell'alias o del truststore.

Non è necessario riavviare il router o il Message Processor.

Passa la variabile di flusso aggiornata a ogni richiesta con il nome del nuovo keystore, dell'alias o del truststore.

Non è necessario contattare l'assistenza Apigee.

Diretto Crea un nuovo keystore, alias, truststore. Aggiorna l'host virtuale e riavvia i router.

Se il truststore viene utilizzato da un endpoint/server di destinazione, esegui nuovamente il deployment del proxy.

Per gli host virtuali, contatta l'assistenza Apigee Edge per riavviare i router.

Se il truststore viene utilizzato da un endpoint/server di destinazione, esegui nuovamente il deployment del proxy.

Diretto Elimina il keystore o il truststore e ricréalo con lo stesso nome. Nessun aggiornamento dell'host virtuale richiesto, nessun riavvio del router necessario. Tuttavia, le richieste dell'API non riescono finché non vengono impostati il nuovo keystore e l'alias.

Se il keystore viene utilizzato per TLS bidirezionale tra Edge e il servizio di backend, riavvia i Message Processor.

Non è necessario alcun aggiornamento dell'host virtuale. Tuttavia, le richieste dell'API non riescono finché non vengono impostati il nuovo keystore e l'alias.

Se il keystore viene utilizzato per TLS bidirezionale tra Edge e il servizio di backend, contatta l'assistenza Apigee Edge per riavviare i processori dei messaggi.

Diretto Solo per il truststore, carica un nuovo certificato nel truststore. Se il truststore è utilizzato da un host virtuale, riavvia i router.

Se il truststore viene utilizzato da un endpoint/server di destinazione, riavvia i processori di messaggi.

Per gli host virtuali, contatta l'assistenza Apigee Edge per riavviare i router Edge.

Se il truststore viene utilizzato da un endpoint/server di destinazione, contatta l'assistenza Apigee Edge per riavviare i Message Processor.