Opzioni per la configurazione di TLS

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

Questo documento contiene una panoramica su come configurare 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. Accesso ai servizi di backend da parte di Edge. Utilizza gli endpoint target e i target server sul processore di messaggi Edge per configurare TLS.

Di seguito sono riportati entrambi i tipi di accesso:

Informazioni sull'impostazione delle opzioni TLS in un host virtuale o in un endpoint target/server target

Un host virtuale può essere rappresentato da un oggetto XML, nel 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 <SSLInfo> tag per configurare un endpoint target o un server target.

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

Elemento Descrizione
<Enabled>

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

Per un host virtuale, devi definire un keystore contenente il certificato e la chiave privata key.

<ClientAuthEnabled>

Abilita TLS a due vie tra Edge e il client API o tra Edge e il backend di destinazione.

L'abilitazione di TLS a due vie in genere richiede la configurazione di un archivio attendibilità su Edge.

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

Se il valore è true, Edge ignora gli errori del certificato TLS. Valido quando si configura TLS per i server target e gli endpoint target e quando si configurano gli host virtuali che utilizzano TLS a due vie. Il valore predefinito è false.

Se utilizzato con un endpoint target/server target, se il sistema di backend utilizza SNI e restituisce un certificato con un nome distinto (DN) del soggetto che non corrisponde al nome host, non è possibile ignorare l'errore e la connessione non riesce.

<CommonName>

Se specificato, un valore rispetto 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 di destinazione. Ad esempio, l'utilizzo di *.myhost.com come valore per <CommonName> corrisponderà e convaliderà il nome host 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 di destinazione verrà abbinato e convalidato se l'elemento <CommonName> è specificato come segue:

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

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

Nell'esempio di host virtuale riportato sopra, il keystore e l'archivio attendibilità vengono specificati utilizzando riferimenti, nel formato:

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

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

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

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

  • Per i clienti Cloud: la modifica del valore del riferimento non richiede di contattare l'assistenza Apigee Edge.
  • Per i clienti Private Cloud: la modifica del valore del riferimento non richiede il riavvio dei componenti Edge, come router e Message Processor.

In alternativa, puoi specificare direttamente il nome del keystore e dell'archivio attendibilità:

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

Se specifichi direttamente il nome del keystore o dell'archivio attendibilità, 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 target/server target, è utilizzare le variabili di flusso:

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

Le variabili di flusso funzionano per gli endpoint target/server target e consentono di aggiornare il keystore o l' archivio attendibilità come i riferimenti. Tuttavia, non funzionano con gli host virtuali e richiedono di trasmettere informazioni sul keystore, sull'alias e sull'archivio attendibilità a ogni richiesta.

Restrizioni nell'utilizzo dei riferimenti a keystore e archivi attendibilità

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

  • Puoi utilizzare i riferimenti a keystore e archivi attendibilità 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 archivi attendibilità negli host virtuali.

Se l'host virtuale esistente utilizza un nome letterale di keystore o archivio attendibilità

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

  1. Edge for Cloud

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

  2. Edge for Private Cloud

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

    1. Aggiorna l'host virtuale in modo che utilizzi un riferimento.
    2. Riavvia i router.
    Per saperne di più, consulta "Modificare un host virtuale in modo che utilizzi i riferimenti al keystore e all'archivio attendibilità" in Configurare l'accesso TLS a un' API per Private Cloud.

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

Se hai un account Edge for Cloud a pagamento e non hai ancora un certificato e una chiave TLS, puoi creare un host virtuale che utilizza il certificato e la chiave di 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 a due vie, devi comunque impostare l'elemento <ClientAuthEnabled> su true, e specificare un archivio attendibilità utilizzando un riferimento con l'elemento <TrustStore>.

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

Informazioni sulla configurazione di TLS

Due fattori principali 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 di Cloud e Private Cloud

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

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

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

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

Gestire i 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 target/server target, devi decidere come eseguire l'aggiornamento prima di eseguire qualsiasi configurazione.

Quando un certificato scade

Su Edge, i certificati vengono archiviati in uno dei due seguenti luoghi:

  • Keystore : contiene il certificato TLS e la chiave privata utilizzati per identificare l'entità durante l'handshake TLS.
  • Archivio attendibilità : contiene i certificati attendibili su un client TLS utilizzati per convalidare il certificato di un server TLS presentato al client. Questi certificati sono in genere certificati autofirmati, certificati firmati da una CA attendibile o certificati utilizzati nell'ambito di TLS a due vie.

Quando un certificato in un keystore scade e utilizzi un riferimento al keystore, non puoi caricare un nuovo certificato nel keystore. Invece:

  1. Crea un nuovo keystore.
  2. Carica il nuovo certificato nel nuovo keystore utilizzando lo stesso nome alias del vecchio keystore.
  3. Aggiorna il riferimento nell'host virtuale o nel server target/endpoint target in modo che utilizzi il nuovo keystore.

Quando un certificato in un archivio attendibilità scade e utilizzi un riferimento all' archivio attendibilità:

  1. Crea un nuovo archivio attendibilità.
  2. Carica il nuovo certificato nel nuovo archivio attendibilità. Il nome alias non è importante per gli archivi attendibilità. 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 nella catena separatamente nell'archivio attendibilità utilizzando un alias diverso per ogni certificato.
  3. Aggiorna il riferimento nell'host virtuale o nel server target/endpoint target in modo che utilizzi il nuovo archivio attendibilità.

Riepilogo dei metodi di aggiornamento di un certificato scaduto

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

  • Riferimenti
  • Nomi diretti
  • Variabili di flusso

Ciascuno 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 i clienti Private Cloud:

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

Per un archivio attendibilità, crea un archivio attendibilità con un nuovo nome.

Aggiorna il riferimento al keystore o all'archivio attendibilità.

Non è necessario riavviare il router o il processore di messaggi.

Aggiorna il riferimento al keystore o all'archivio attendibilità.

Non è necessario contattare l'assistenza Apigee.

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

Per un archivio attendibilità, crea un archivio attendibilità con un nuovo nome.

Trasmetti la variabile di flusso aggiornata a ogni richiesta con il nome del nuovo keystore, alias o archivio attendibilità.

Non è necessario riavviare il router o il processore di messaggi.

Trasmetti la variabile di flusso aggiornata a ogni richiesta con il nome del nuovo keystore, alias o archivio attendibilità.

Non è necessario contattare l'assistenza Apigee.

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

Se l'archivio attendibilità viene utilizzato da un endpoint target/server target, esegui di nuovo il deployment del proxy.

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

Se l'archivio attendibilità viene utilizzato da un endpoint target/server target, esegui di nuovo il deployment del proxy.

Diretto Elimina il keystore o l'archivio attendibilità e ricrealo con lo stesso nome. Non è necessario aggiornare l'host virtuale, non è necessario riavviare il router. Tuttavia, le richieste API non vanno a buon fine finché non vengono impostati il nuovo keystore e l'alias.

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

Non è necessario aggiornare l'host virtuale. Tuttavia, le richieste API non vanno a buon fine finché non vengono impostati il nuovo keystore e alias.

Se il keystore viene utilizzato per TLS a due vie tra Edge e il servizio di backend, contatta l'assistenza Apigee Edge per riavviare i Message Processor.

Diretto Solo per l'archivio attendibilità, carica un nuovo certificato nell'archivio attendibilità. Se l'archivio attendibilità viene utilizzato da un host virtuale, riavvia i router.

Se l'archivio attendibilità viene utilizzato da un endpoint target/server target, riavvia i Message Processor.

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

Se l'archivio attendibilità viene utilizzato da un endpoint target/server target, contatta l'assistenza Apigee Edge per riavviare i Message Processor.