Opzioni per la configurazione di TLS

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

Questo documento contiene una panoramica di 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 perimetrale per configurare TLS.
  2. Accesso ai servizi di backend tramite Edge. Utilizza gli endpoint di destinazione e i server di destinazione sul processore di messaggi Edge per configurare TLS.

Di seguito sono mostrati entrambi i tipi di accesso:

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

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 tag <SSLInfo> per configurare un endpoint di destinazione o un server di destinazione.

Nella tabella seguente vengono descritti gli elementi di configurazione TLS utilizzati dal tag <SSLInfo>:

Elemento Descrizione
<Abilitata>

Abilita 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>

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

L'attivazione del protocollo TLS bidirezionale richiede in genere la configurazione di un archivio attendibilità 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 durante la configurazione di TLS per i server di destinazione e gli endpoint di destinazione e durante la configurazione di host virtuali che utilizzano TLS bidirezionale. Il valore predefinito è false.

Quando utilizzato con un server di destinazione/endpoint di destinazione, 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 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 di destinazione. Ad esempio, l'uso di *.myhost.com come valore per <CommonName> troverà corrispondenze e convaliderà il nome host di destinazione solo se il valore esatto *.myhost.com viene specificato come nome comune nel certificato di destinazione.

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

Ad esempio, un nome comune specificato come abc.myhost.com in un certificato di destinazione verrebbe abbinato e convalidato se l'elemento <CommonName> viene specificato come segue:

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

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

Nell'esempio dell'host virtuale riportato sopra, l'archivio chiavi e l'archivio attendibilità sono specificati utilizzando references nel formato:

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

Apigee consiglia vivamente di utilizzare sempre i riferimenti all'archivio chiavi e all'archivio attendibilità. Un riferimento è una variabile che contiene il nome dell'archivio chiavi o dell'archivio di attendibilità, 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 dell'archivio chiavi è 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/il server di destinazione per specificare l'archivio chiavi o l'archivio di attendibilità contenente il nuovo certificato. Il vantaggio di un riferimento è che puoi modificare il valore del riferimento per modificare l'archivio chiavi o l'archivio di attendibilità senza dover modificare l'host virtuale o l'endpoint/server di destinazione stesso:

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

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

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

Se specifichi direttamente il nome dell'archivio chiavi o dell'archivio attendibilità, i clienti Cloud devono contattare l'assistenza Apigee Edge e i clienti Private Cloud devono riavviare alcuni componenti Edge per aggiornare il certificato.

Una terza opzione, solo per endpoint/server di destinazione, è l'uso delle variabili di flusso:

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

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

Limitazioni nell'utilizzo dei riferimenti agli archivi chiavi e all'archivio di attendibilità

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

  • Puoi utilizzare i riferimenti dell'archivio chiavi e dell'archivio attendibilità negli host virtuali solo se termini TLS sui router Apigee.
  • Se disponi di un bilanciatore del carico davanti ai router Apigee e termini TLS sul bilanciatore del carico, non puoi utilizzare i riferimenti all'archivio chiavi e all'archivio attendibilità negli host virtuali.

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

Gli host virtuali esistenti su Edge potrebbero non essere configurati per l'utilizzo dei riferimenti per archivi chiavi e archivi di attendibilità. In questo caso, puoi aggiornare l'host virtuale per utilizzare un riferimento.

  1. Edge per il cloud

    Per cambiare l'host virtuale in modo da utilizzare un riferimento all'archivio chiavi, devi collaborare con l'assistenza Apigee Edge.

  2. Perimetro per il cloud privato

    Per convertire l'host virtuale in modo da utilizzare un riferimento:

    1. Aggiorna l'host virtuale per utilizzare un riferimento.
    2. Riavvia i router.
    Per saperne di più, consulta la sezione "Modifica di un host virtuale per l'utilizzo dei riferimenti all'archivio chiavi e all'archivio di attendibilità" in Configurazione dell'accesso TLS a un'API per il cloud privato.

Informazioni sull'uso del certificato e della chiave di 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 utilizza il certificato e la chiave di prova senza costi di Apigee. Ciò significa che puoi creare l'host virtuale senza prima creare un archivio chiavi.

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 archivio attendibilità utilizzando un riferimento con l'elemento <TrustStore>.

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

Informazioni sulla configurazione di TLS

Due fattori principali determinano il modo in cui esegui la configurazione TLS:

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

Opzioni di configurazione per cloud e cloud privato

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

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

I clienti del cloud privato 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 host virtuali e di impostare tutte le proprietà su un host virtuale.

Tutti i clienti Cloud, sia a pagamento che 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 e il certificato non è più valido, è necessario 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 scade un certificato

Su Edge, i certificati vengono archiviati in due posizioni:

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

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

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

Quando un certificato in un archivio attendibilità scade e utilizzi un riferimento all'archivio attendibilità, esegui queste operazioni:

  1. Creare un nuovo archivio attendibilità.
  2. Carica il nuovo certificato nel nuovo archivio attendibilità. Il nome alias non è importante per gli archivi di attendibilità. Nota: se un certificato fa parte di una catena, devi creare un singolo file contenente tutti i certificati e caricare il file su un singolo alias oppure caricare tutti i certificati nella catena separatamente nell'archivio di attendibilità utilizzando un alias diverso per ciascun certificato.
  3. Aggiorna il riferimento nell'host virtuale o nell'endpoint del server/di destinazione per utilizzare il nuovo archivio di attendibilità.

Riepilogo dei metodi di aggiornamento di un certificato scaduto

Il metodo che utilizzi per specificare il nome dell'archivio chiavi e dell'archivio di attendibilità nell'host virtuale o nel server di destinazione/endpoint di destinazione determina il modo in cui esegui l'aggiornamento dei certificati. 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à per i clienti sia di Cloud che di 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 dell'alias precedente.

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

Aggiorna il riferimento all'archivio chiavi o all'archivio attendibilità.

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

Aggiorna il riferimento all'archivio chiavi o all'archivio attendibilità.

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 archivio attendibilità, crea un archivio attendibilità con un nuovo nome.

Passa la variabile di flusso aggiornata su ogni richiesta con il nome del nuovo archivio chiavi, dell'alias o dell'archivio attendibilità.

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

Passa la variabile di flusso aggiornata su ogni richiesta con il nome del nuovo archivio chiavi, dell'alias o dell'archivio attendibilità.

Non è necessario contattare l'assistenza Apigee.

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

Se l'archivio di attendibilità è 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 l'archivio di attendibilità è utilizzato da un endpoint/server di destinazione, esegui nuovamente il deployment del proxy.

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

Se l'archivio chiavi viene utilizzato per TLS bidirezionale tra Edge e il servizio di backend, riavvia i processori di messaggi.

Nessun aggiornamento dell'host virtuale richiesto. Tuttavia, le richieste API non vanno a buon fine finché non vengono impostati il nuovo archivio chiavi e l'alias.

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

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

Se l'archivio di attendibilità è utilizzato da un server di destinazione/endpoint di destinazione, riavvia i processori di messaggi.

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

Se l'archivio attendibilità viene utilizzato da un server di destinazione/endpoint di destinazione, contatta l'assistenza Apigee Edge per riavviare i processori di messaggi.