Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
SNI (Server Name Indication) consente di gestire più server di backend HTTPS con lo stesso indirizzo IP e la stessa porta, senza che i server di backend utilizzino lo stesso certificato TLS. Si tratta di un'estensione del protocollo TLS. Quando SNI è abilitato su un client, il client passa il nome host del server di backend come parte dell'handshake TLS iniziale. Ciò consente al server TLS di determinare quale certificato TLS deve essere utilizzato per convalidare la richiesta del client.
Per impostazione predefinita, SNI è disabilitato nel componente Message Processor in Edge per il cloud privato, al fine di garantire la compatibilità con le versioni precedenti dei server di backend esistenti. Se il server di backend è configurato per supportare SNI, devi abilitare SNI sul componente Message Processor. In caso contrario, le richieste API che passano attraverso Apigee Edge non andranno a buon fine con errori di handshake TLS.
Questo documento spiega come effettuare le seguenti operazioni:
- Identificare se un server di backend è abilitato per SNI
- Abilita SNI sui processori di messaggi per comunicare con i server di backend che supportano SNI
- Disabilita SNI sui processori di messaggi, se necessario
- Verifica che la configurazione SNI sia stata aggiornata correttamente sui processori di messaggi
Prima di iniziare
- Se non hai dimestichezza con SNI, consulta Utilizzare SNI con Edge.
- Se non hai familiarità con la configurazione di Edge su Private Cloud, leggi Come configurare Edge.
Identificazione del server abilitato per SNI
Questa sezione descrive come identificare se un server di backend è abilitato o meno a SNI.
-
Esegui il comando
openssl
e prova a connetterti al nome host del server pertinente (router perimetrale o server di backend) senza passare il nome del server, come mostrato di seguito:openssl s_client -connect hostname:port
-
Potresti ricevere i certificati e a volte potresti notare l'errore di handshake nel comando
openssl
, come mostrato di seguito:
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
Esegui il comando
openssl
e prova a connetterti al nome host del server pertinente (router perimetrale o server di backend) trasmettendo il nome del server come mostrato di seguito:openssl s_client -connect hostname:port -servername hostname
- Se si verifica un errore di handshake nel passaggio 1 o ricevi certificati diversi nei passaggi 1 e 2, significa che il server specificato è abilitato per SNI.
- Se vuoi verificare questo per più di un server di backend, devi ripetere i passaggi precedenti per ogni server di backend.
Se hai uno o più server di backend con SNI abilitato, devi abilitare SNI sul componente Message Processor, come spiegato di seguito. In caso contrario, le richieste API che passano attraverso Apigee Edge non andranno a buon fine con errori di handshake TLS.
Abilita SNI tra processori di messaggi Edge e server di backend
Questa sezione spiega come abilitare SNI tra il processore di messaggi Edge e il server di backend. SNI può essere attivato tramite la proprietà jsse.enableSNIExtension
nel componente Message Processor. Per configurare qualsiasi proprietà sul processore di messaggi, utilizza il token in base alla sintassi descritta in Come configurare Edge.
Per attivare SNI sui processori di messaggi, procedi nel seguente modo:
Individua il token per la proprietà jsse.enableSNIExtension
I passaggi seguenti descrivono come trovare il token per la
proprietà jsse.enableSNIExtension
:
-
Cerca la proprietà
jsse.enableSNIExtension
nella directory di origine del processore di messaggi/opt/apigee/edge-message-processor/source
utilizzando il seguente comando:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
L'output di questo comando mostra il token per la proprietà
jsse.enableSNIExtension
del processore di messaggi, come segue:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
Dove la stringa tra i tag
{T}{/T}
è il nome del token che puoi impostare nel file.properties
del processore di messaggi.Di conseguenza, il token per la proprietà
jsse.enableSNIExtension
è il seguente:conf_system_jsse.enableSNIExtension
Attiva SNI sul processore di messaggi
I passaggi seguenti descrivono come abilitare SNI sul componente Apigee Message Processor.
- Nel computer del processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/message-processor.properties
Ad esempio, per aprire il file utilizzando
vi
, inserisci il seguente comando:vi /opt/apigee/customer/application/message-processor.properties
-
Aggiungi una riga nel seguente formato al file delle proprietà:
conf_system_jsse.enableSNIExtension=true
- Salva le modifiche.
-
Assicurati che questo file delle proprietà sia di proprietà dell'utente
apigee
, come mostrato di seguito:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Riavvia il processore di messaggi come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifica che la configurazione SNI sia aggiornata sul processore di messaggi.
- Se disponi di più processori di messaggi, ripeti questi passaggi precedenti su tutti i processori di messaggi.
Disabilita SNI tra processori di messaggi Edge e server di backend
In genere, dopo aver abilitato SNI, non dovresti riscontrare alcun problema. Tuttavia, se si verificano problemi di connettività tra il processore di messaggi Edge e il server di backend dopo aver abilitato SNI, puoi sempre disabilitare SNI eseguendo la procedura riportata di seguito.
È possibile disattivare SNI impostando di nuovo la proprietà jsse.enableSNIExtension
su false
nel componente Message Processor.
Disabilita SNI sui processori di messaggi
I passaggi seguenti descrivono come disabilitare SNI sui processori di messaggi Apigee.
-
Nel computer del processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/message-processor.properties
Ad esempio, per aprire il file utilizzando
vi
, inserisci il seguente comando:vi /opt/apigee/customer/application/message-processor.properties
-
Se la riga
conf_system_jsse.enableSNIExtension=true
esiste in/opt/apigee/customer/application/message-processor.properties
, modificala come segue:conf_system_jsse.enableSNIExtension=false
- Salva le modifiche.
-
Assicurati che questo file delle proprietà sia di proprietà dell'utente
apigee
, come mostrato di seguito:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Riavvia il processore di messaggi come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifica che la configurazione SNI sia aggiornata sul processore di messaggi.
- Se disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
Verifica della configurazione SNI sui processori di messaggi
Questa sezione spiega come verificare che la configurazione SNI sia stata aggiornata correttamente sui processori di messaggi.
Anche se utilizzi il token conf_system_jsse.enableSNIExtension
per configurare SNI sul processore di messaggi, devi verificare che la proprietà effettiva jsse.enableSNIExtension
sia stata impostata con il nuovo valore.
-
Nel computer del processore di messaggi, cerca la proprietà
jsse.enableSNIExtension
nella directory/opt/apigee/edge-message-processor/conf
e controlla se è stata impostata con il nuovo valore, come mostrato di seguito:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Se la configurazione SNI viene aggiornata correttamente sul processore di messaggi, il comando riportato sopra mostra il nuovo valore nel file
system.properties
.Il risultato di esempio del comando riportato sopra dopo aver abilitato SNI sul processore di messaggi è il seguente:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Analogamente, il risultato di esempio dal comando riportato sopra dopo aver disabilitato SNI sul processore di messaggi è il seguente:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Nell'output di esempio sopra riportato, tieni presente che la proprietà
jsse.enableSNIExtension
è stata aggiornata al nuovo valoretrue
ofalse
insystem.properties
. Questo indica che la funzione SNI è stata attivata o disattivata correttamente sul processore di messaggi. -
Se vedi ancora il valore precedente per la proprietà
jsse.enableSNIExtension
, verifica di aver seguito tutti i passaggi descritti nella sezione appropriata per attivare o disattivare correttamente SNI. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi. - Se ancora non riesci ad abilitare/disabilitare SNI , contatta l'assistenza Apigee Edge.