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:
- Accesso ai proxy API da parte dei client API. Utilizza gli host virtuali sul router Edge per configurare TLS.
- 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 Facoltativamente, Apigee può eseguire la corrispondenza con i caratteri jolly utilizzando l'attributo Ad esempio, un nome comune specificato come <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.
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.
Edge per il Private Cloud
Per convertire l'host virtuale in modo che utilizzi un riferimento:
- Aggiorna l'host virtuale in modo da utilizzare un riferimento.
- Riavviare i router.
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:
- Crea un nuovo magazzino chiavi.
- Carica il nuovo certificato nel nuovo keystore utilizzando lo stesso nome dell'alias del vecchio keystore.
- 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:
- Crea un nuovo truststore.
- 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.
- 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. |