Edge for Private Cloud v4.18.01
TLS (Transport Layer Security, il cui predecessore è SSL) è la tecnologia di sicurezza standard per garantire la messaggistica sicura e criptata nell'ambiente API. Puoi configurare TLS sui nodi del portale API BaaS e dello stack API BaaS.
La seguente immagine mostra un tipico diagramma di deployment per API BaaS con un singolo nodo del portale BaaS e tre nodi dello stack API BaaS.

Gli sviluppatori utilizzano un browser per inviare richieste al portale. Per impostazione predefinita, le richieste utilizzano il protocollo HTTP sulla porta 9000 del nodo del portale.
Questo deployment include un bilanciatore del carico tra i nodi Portal e Stack. In questa configurazione, il portale invia richieste HTTP al bilanciatore del carico, che poi le inoltra a uno dei nodi Stack. Questo è l'ambiente di deployment consigliato per un sistema di produzione.
Opzioni di configurazione TLS
Quando configuri TLS per API BaaS, hai diverse opzioni:
- Configura TLS sul portale e sul bilanciatore del carico per i nodi Stack
In questa configurazione, gli sviluppatori utilizzano il protocollo HTTPS per accedere al portale e il portale in esecuzione nel browser utilizza HTTPS per inviare richieste ai nodi Stack tramite il bilanciatore del carico. Il bilanciatore del carico utilizza HTTP per accedere ai nodi Stack. - Configura TLS sul portale, sul bilanciatore del carico e sui nodi Stack
Per una maggiore sicurezza, configura il bilanciatore del carico in modo che utilizzi TLS per accedere ai nodi Stack. - Configura TLS sul portale e su un singolo nodo Stack
In un ambiente di piccole dimensioni, ad esempio un ambiente di test o di sviluppo, potresti avere un solo nodo Stack, il che significa che non è necessario includere un bilanciatore del carico. In questa configurazione, configura TLS sia sui nodi Portal che su quelli Stack. - Configura TLS su un bilanciatore del carico per il portale
Un'opzione non mostrata sopra è l'utilizzo di un bilanciatore del carico davanti al nodo del portale. In questa configurazione, puoi configurare TLS sul bilanciatore del carico e, facoltativamente, sulla connessione tra il bilanciatore del carico e il portale.
Assicurati che la porta TLS sia aperta
Le procedure riportate di seguito configurano TLS sulla porta predefinita del portale 9000 e sul nodo dello stack 8080. Tuttavia, se vuoi, puoi modificare questa porta.
Indipendentemente dalla porta utilizzata, devi assicurarti che sia aperta sul nodo. Ad esempio, puoi utilizzare il seguente comando per aprire la porta 8443:
$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose
Configurazione di TLS nello stack API BaaS
Per impostazione predefinita, TLS è disabilitato per lo stack API BaaS. Quindi accedi all'API BaaS tramite HTTP utilizzando l'indirizzo IP o il nome DNS del nodo Stack e la porta 8080. Ad esempio:
http://stack_IP:8080
In alternativa, puoi configurare l'accesso TLS all'API BaaS in modo da potervi accedere nel seguente formato:
https://stack_IP:8080
In questo esempio, configuri l'accesso TLS in modo che utilizzi la porta 8080. Tuttavia, la porta 8080 non è obbligatoria: puoi configurare lo stack in modo che utilizzi una porta diversa. L'unico requisito è che il firewall consenta il traffico sulla porta specificata.
Lo stack può supportare un solo tipo di richiesta (HTTP o HTTPS) su una singola porta. Pertanto, se configuri l'accesso HTTPS sulla porta 8080, non puoi utilizzare HTTP per accedere alla porta 8080. Se configuri lo Stack in modo che utilizzi la porta 8443 con HTTPS, lo Stack non rimarrà più in ascolto sulla porta 8080.
Per configurare l'accesso TLS allo stack, segui questa procedura:
- Genera il file JKS dell'archivio chiavi contenente la certificazione TLS e la chiave privata. Per saperne di più, consulta Configurazione di TLS/SSL per Edge on-premises.
Nota: assicurati che la password dell'archivio chiavi e quella della chiave siano uguali. - Copia il file JKS dell'archivio chiavi in una directory del nodo Stack, ad esempio /opt/apigee/customer/application. La directory deve essere accessibile all'utente "apigee".
- Cambia la proprietà del file JKS impostandola sull'utente "apigee":
> chown apigee:apigee /opt/apigee/customer/application/keystore.jks
dove keystore.jks è il nome del file del keystore. - Modifica il file /opt/apigee/customer/application/usergrid.properties per impostare le seguenti proprietà, tra cui il percorso del file JKS e la password dell'archivio chiavi e della chiave. Se il file non esiste, crealo:
tomcat-server_scheme=https
tomcat-server_secure=true
tomcat-server_ssl.enabled=true
tomcat-server_keystore.type=JKS
tomcat-server_keystore.file=/opt/apigee/customer/application/keystore.jks
tomcat-server_keystore.password=password
tomcat-server_keyalias=keystore_alias
tomcat-server_clientauth.enabled=false
tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
# By default, TLS access uses port 8080.
# Use this property to specify a different port.
# tomcat-server_port=8080
Avviso: il valore password deve essere in testo non crittografato. Pertanto, devi proteggere usergrid.properties da accessi non autorizzati.
Utilizza la proprietà tomcat-server_keyalias per specificare l'alias del keystore. L'alias della chiave viene impostato al momento della creazione della chiave. Ad esempio, puoi impostarlo utilizzando l'opzione -alias per il comando keytool.
Utilizza tomcat-server_ssl.protocols per impostare i protocolli TLS supportati dallo stack. Per un elenco dei protocolli supportati da Java 8, consulta http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename. - Configura il nodo Stack:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Riavvia lo stack BaaS:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Verifica che TLS funzioni eseguendo il seguente comando cURL sul nodo Stack utilizzando HTTPS:
> curl -k https://localhost:8080/status -v
Se TLS è configurato correttamente, dovresti visualizzare una risposta contenente informazioni sullo stato.
Se hai configurato l'accesso TLS su una porta diversa da 8080, modifica il comando precedente per utilizzare la porta corretta. - Ripeti l'operazione su tutti i nodi Stack.
- Se hai un bilanciatore del carico davanti ai nodi Stack, configuralo in modo che invii richieste ai nodi Stack tramite HTTPS. Per saperne di più, consulta la documentazione del bilanciatore del carico.
Se il portale effettua richieste dirette allo stack, configura il portale per accedere allo stack tramite HTTPS, come descritto nella sezione seguente. - Utilizza la procedura riportata di seguito in "Configura i nodi dello stack API BaaS per TLS sullo stack o sul portale" per assicurarti che il nodo dello stack abbia gli URL TLS corretti durante la generazione delle risposte degli utenti.
Configurazione del portale per l'accesso allo stack tramite TLS
Il portale BaaS in esecuzione in un browser funziona effettuando chiamate API allo stack BaaS. Se configuri lo stack BaaS per l'utilizzo di TLS, devi anche configurare il portale per effettuare queste chiamate tramite HTTPS.
Un'installazione di API BaaS è in genere configurata per:
- Utilizza un bilanciatore del carico tra i nodi Portal e Stack
Configura il bilanciatore del carico per inviare richieste ai nodi Stack tramite HTTPS. Per saperne di più, consulta la documentazione del bilanciatore del carico.
In questa configurazione, il portale può accedere al bilanciatore del carico tramite HTTP o HTTPS, a seconda di come configuri il bilanciatore del carico. Se il bilanciatore del carico utilizza TLS, segui la procedura riportata di seguito per configurare il portale in modo che invii richieste al bilanciatore del carico di HTTPS. - Fai in modo che il portale invii richieste dirette allo stack
Configura il portale per accedere allo stack tramite HTTPS come descritto di seguito.
Utilizza la seguente procedura per configurare il portale API BaaS in modo che effettui chiamate API tramite HTTPS:
- Configura l'accesso TLS nello stack BaaS come descritto sopra o nel bilanciatore del carico per i nodi dello stack come descritto nella documentazione del bilanciatore del carico.
- Modifica /opt/apigee/customer/application/portal.properties
per impostare la seguente proprietà. Se il file non esiste, crealo:
baas.portal.config.overrideUrl=https://stackIP:port
Specifica come valore di questa proprietà l'indirizzo IP o il nome DNS e la porta del nodo dello stack API per un'installazione su un singolo nodo o del bilanciatore del carico se hai un bilanciatore del carico davanti ai nodi dello stack API BaaS. - Configura il nodo Portal:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Riavvia il portale utilizzando il comando:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart - Se hai utilizzato un certificato autofirmato durante la configurazione dell'accesso TLS allo Stack
precedente, il browser potrebbe non consentire le richieste allo Stack dal portale. Se nel browser viene visualizzato un errore che indica che l'accesso HTTPS allo Stack non è consentito, richiedi il seguente URL nel browser e aggiungi un'eccezione di sicurezza per consentire l'accesso:
https://stackIP:port/status
Specifica l'indirizzo IP o il nome DNS e la porta del nodo o del bilanciatore del carico dello Stack API.
Configurazione di TLS sul portale API BaaS
Per impostazione predefinita, gli utenti accedono al portale inviando richieste HTTP non criptate tramite la porta 9000 sul server del portale. Puoi configurare il portale in modo che utilizzi HTTPS per criptare i dati inviati da e verso il portale.
Per impostazione predefinita, accedi al portale tramite HTTP utilizzando l'indirizzo IP o il nome DNS del nodo del portale e la porta 9000. Ad esempio:
http://portal_IP:9000
In alternativa, puoi configurare l'accesso TLS al portale in modo da potervi accedere nel seguente formato:
https://portal_IP:9443
In questo esempio, configuri l'accesso TLS in modo che utilizzi la porta 9443. Tuttavia, la porta 9443 non è obbligatoria: puoi configurare il portale in modo che utilizzi una porta diversa.
Il portale può supportare un solo tipo di richiesta (HTTP o HTTPS) su una singola porta. Pertanto, se configuri l'accesso HTTPS sulla porta 9000, non puoi utilizzare HTTP per accedere alla porta 9000. Se configuri il portale in modo che utilizzi la porta 9443 con HTTPS, il portale non rimarrà più in ascolto sulla porta 9000.
Per configurare TLS per il portale:
- Crea un file di chiave e un file di certificato in formato PEM.
Nota: assicurati che non sia presente una password/passphrase sulla chiave o sul certificato. - Copia i file PEM in una directory sul nodo del portale, ad esempio /opt/apigee/customer/application. La directory deve essere accessibile all'utente "apigee".
- Cambia la proprietà dei file PEM impostandola sull'utente "apigee":
> chown apigee:apigee /opt/apigee/customer/application/*.PEM - Modifica il file /opt/apigee/customer/application/portal.properties per impostare le seguenti proprietà. Se il file non esiste, crealo:
baas.portal.ssl=on
baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
# By default, TLS access uses port 9000.
# Use this property to specify a different port.
# baas.portal.listen=9000
Utilizza baas.portal.ssl.protocols per impostare i protocolli TLS supportati dal portale. Per un elenco dei protocolli supportati, consulta l'elenco dei nomi dei protocolli SSL definiti da Nginx: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols. - Configura il nodo Portal:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Riavvia il portale:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart - Utilizza la procedura riportata di seguito in "Configura i nodi dello stack API BaaS per TLS sullo stack o sul portale" per assicurarti che il nodo dello stack abbia l'URL TLS corretto per il portale.
Configura i nodi API BaaS per TLS nello stack o nel portale
Se includi un bilanciatore del carico davanti ai nodi Stack o Portal o se attivi TLS direttamente sul nodo Portal o Stack, devi configurare i nodi con gli URL corretti per accedere a Stack e Portal. Ad esempio, i nodi Stack richiedono queste informazioni quando:
- Includere un URL nelle risposte alle richieste API BaaS.
- Aggiunta di link nei modelli di email durante la reimpostazione di una password o l'invio di altre notifiche.
- Reindirizzamento degli utenti a pagine specifiche del portale.
Se utilizzi un bilanciatore del carico davanti ai nodi Stack o configuri TLS sul nodo Stack, imposta la seguente proprietà in /opt/apigee/customer/application/usergrid.properties:
usergrid-deployment_usergrid.api.url.base=http://localhost:8080
Sostituisci http://localhost:8080 con l'URL del bilanciatore del carico. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Devi includere la porta solo se utilizzi una porta non standard, ovvero una porta diversa dalla porta 80 per HTTP e dalla porta 443 per HTTPS.
Se utilizzi un bilanciatore del carico davanti ai nodi Stack, devi anche impostare la seguente proprietà in /opt/apigee/customer/application/portal.properties :
baas.portal.config.overrideUrl=http://localhost:8080
Sostituisci http://localhost:8080 con l'URL del bilanciatore del carico per lo stack.
Se utilizzi un bilanciatore del carico a monte del nodo Portal o configuri TLS sul nodo Stack, imposta le seguenti proprietà in usergrid.properties:
usergrid-deployment_portal.url=http://localhost:9000
Sostituisci http://localhost:9000 con l'URL del bilanciatore del carico. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Devi includere la porta solo se utilizzi una porta non standard, ovvero una porta diversa dalla porta 80 per HTTP e dalla porta 443 per HTTPS.
Dopo aver modificato usergrid.properties:
- Configura il nodo Stack:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Riavvia lo stack BaaS:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Se hai modificato portal.properties, configura il nodo del portale:??
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Riavvia il portale BaaS:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart