Configurazione di TLS per l'API BaaS

Edge per Private Cloud v. 4.17.05

TLS (Transport Layer Security, il cui predecessore è SSL) è la tecnologia di sicurezza standard per garantire una messaggistica sicura e criptata in tutto l'ambiente API. Puoi configurare TLS sui nodi API BaaS Portal e API BaaS Stack.

L'immagine seguente mostra un tipico diagramma di deployment per API BaaS con un singolo portale BaaS e tre nodi API BaaS Stack.

Gli sviluppatori utilizzano un browser per effettuare richieste al portale. Per impostazione predefinita, le richieste utilizzano il protocollo HTTP sulla porta 9000 del nodo Portal.

Questo deployment include un bilanciatore del carico tra il portale e i nodi dello stack. In questo configurazione, il portale invia richieste HTTP al bilanciatore del carico e al bilanciatore del carico, inoltra le richieste a uno dei nodi dello stack. Questo è il deployment consigliato per un sistema di produzione.

Opzioni di configurazione TLS

Quando configuri TLS per BaaS API, hai a disposizione diverse opzioni:

  • Configura TLS sul portale e sul bilanciatore del carico per i nodi dello stack

    In questa configurazione, gli sviluppatori utilizzano il protocollo HTTPS per accedere al portale in esecuzione nel browser utilizza HTTPS per inviare richieste ai nodi dello stack attraverso il caricamento con il bilanciatore del carico di rete passthrough esterno regionale. Il bilanciatore del carico utilizza HTTP per accedere ai nodi dello stack.
  • Configura TLS sui nodi del portale, del bilanciatore del carico e dello stack

    Per maggiore sicurezza, configura il bilanciatore del carico in modo che utilizzi TLS per accedere ai nodi dello stack.
  • Configura TLS sul portale e su un singolo nodo Stack

    In un ambiente di dimensioni ridotte, ad esempio un ambiente di test o sviluppo, potresti avere solo con un singolo nodo Stack, per cui non è necessario includere un bilanciatore del carico. In questa configurazione, e configurare TLS sia sul portale sia sui nodi dello 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 questo puoi configurare TLS sul bilanciatore del carico e, facoltativamente, sul connessione tra il bilanciatore del carico e il portale.
di Gemini Advanced.

Assicurati che la porta TLS sia aperta

Le procedure riportate di seguito configurano TLS sulla porta predefinita del portale 9000 e sul nodo stack di 8080. Tuttavia, se vuoi, puoi modificare questa porta.

Indipendentemente dalla porta che utilizzi, devi assicurarti che sia aperta sul nodo. Per Ad esempio, puoi utilizzare questo 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 sullo stack BaaS delle API

Per impostazione predefinita, TLS è disabilitato per lo stack BaaS dell'API. Puoi quindi accedere 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 modulo:

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 consente 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 Se configuri lo stack in modo che utilizzi la porta 8443 con HTTPS, lo stack smetterà di rimanere in ascolto sulla porta 8080.

Utilizza la seguente procedura per configurare l'accesso TLS allo stack:

  1. Genera il file JKS dell'archivio chiavi contenente la certificazione TLS e la chiave privata. Per ulteriori informazioni consulta Configurazione di TLS/SSL per Edge On Locali.
    Nota: assicurati che la password sull'archivio chiavi e quella della chiave siano la stessa.
  2. Copia il file JKS dell'archivio chiavi in una directory sul nodo dello stack, ad esempio /opt/apigee/customer/application. La directory deve essere accessibile all'app 'apigee' utente.
  3. Cambia la proprietà del file JKS con 'apigee' utente:
    > chown apigee:apigee /opt/apigee/customer/application/keystore.jks

    dove keystore.jks è il nome del file dell'archivio chiavi.
  4. Modifica /opt/apigee/customer/application/usergrid.properties per impostare le seguenti proprietà, tra cui il percorso del file JKS e la password l'archivio chiavi e la 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
    # Per impostazione predefinita, l'accesso TLS utilizza la porta 8080.
    # Utilizza questa proprietà per specificare una porta diversa.
    # tomcat-server_port=8080


    Avviso: il valore password deve essere in testo in chiaro. Di conseguenza, devi proteggere usergrid.properties da l'accesso.

    Utilizza tomcat-server_keyalias per specificare l'alias dell'archivio chiavi. L'alias della chiave è stato impostato al momento della creazione della chiave. Ad esempio, puoi impostarlo utilizzando l'opzione -alias al comando keytool.

    Utilizza tomcat-server_ssl.protocols per impostare i protocolli TLS supportati dallo stack. Per un elenco di protocolli supportati da Java 8, consulta http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename.
  5. Configura il nodo Stack:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  6. Riavvia lo stack BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid reboot
  7. Per verificare che TLS funzioni correttamente, esegui il seguente comando cURL sul nodo Stack utilizzando HTTPS:
    > curl -k https://localhost:8080/status -v

    Se TLS è configurato correttamente, dovresti vedere una risposta contenente informazioni sullo stato.

    Se hai configurato l'accesso TLS su una porta diversa da 8080, modifica il comando riportato sopra per utilizzare la porta corretta.
  8. Ripeti l'operazione su tutti i nodi dello stack.
  9. Se hai un bilanciatore del carico che si trova davanti ai nodi dello stack, configura bilanciatore del carico per effettuare richieste ai nodi dello stack tramite HTTPS. Consulta la documentazione su con il bilanciatore del carico di rete per maggiori informazioni.

    Se il portale effettua richieste dirette allo stack, configuralo in modo da accedi allo stack tramite HTTPS come descritto nella sezione che segue.
  10. Utilizza la procedura riportata di seguito in "Configurare i nodi dello stack BaaS dell'API per TLS sullo stack o sul portale" per assicurarti che il nodo Stack abbia gli URL TLS corretti durante la generazione diverse.

Configurazione in corso... tramite il portale per accedere allo stack

Il portale BaaS in esecuzione in un browser funziona effettuando chiamate API allo stack BaaS. Se configurare lo stack BaaS per l'utilizzo di TLS, devi configurare anche il portale per effettuare queste chiamate tramite HTTPS.

In genere, un'installazione di API BaaS viene configurata per:

  • Utilizza un bilanciatore del carico tra i nodi del portale e quelli dello stack

    Configura il bilanciatore del carico per effettuare richieste ai nodi dello stack tramite HTTPS. Consulta le sul bilanciatore del carico per ulteriori informazioni.

    In questa configurazione, il portale può accedere al bilanciatore del carico tramite HTTP o HTTPS, a seconda per configurare il bilanciatore del carico. Se il bilanciatore del carico utilizza TLS, segui la procedura riportata di seguito per e configurare il portale per effettuare richieste al bilanciatore del carico HTTPS.
  • Chiedi al portale di effettuare 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 da effettuare chiamate API tramite HTTPS:

  1. Configura l'accesso TLS nello stack BaaS come descritto in precedenza oppure sul bilanciatore del carico per Stack i nodi come descritto nella documentazione relativa al tuo bilanciatore del carico.
  2. 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 l'installazione di un singolo nodo o del bilanciatore del carico, se ne hai uno davanti dei nodi dello stack BaaS dell'API.
  3. Configura il nodo del portale:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. Riavvia il portale utilizzando questo comando:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal reboot
  5. Se hai utilizzato un certificato autofirmato durante la configurazione dell'accesso TLS allo stack sopra, il browser potrebbe non consentire le richieste allo stack dal portale. Se vedi Vedere un errore nel browser che indica che l'accesso HTTPS allo stack non è consentito, richiedi quanto segue URL nel tuo 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 dello stack API o del bilanciatore del carico.

Configurazione di TLS sul portale BaaS API

Per impostazione predefinita, gli utenti accedono al portale effettuando richieste HTTP non criptate sulla porta 9000 della Portal server. Puoi configurare il portale in modo che utilizzi HTTPS per criptare i dati inviati e ricevuti portale.

Per impostazione predefinita, puoi accedere al portale tramite HTTP utilizzando l'indirizzo IP o il nome DNS 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 modulo:

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 configura il portale in modo che utilizzi la porta 9443 con HTTPS, il portale non sarà più in ascolto sulla porta 9000.

Per configurare il protocollo TLS per il portale:

  1. Crea un file della chiave e un file di certificato in formato PEM.
    Nota: assicurati che la chiave o il certificato non contengano password/passphrase.
  2. Copia i file PEM in una directory sul nodo del portale, ad esempio /opt/apigee/customer/application. La directory deve essere accessibile all'app 'apigee' utente.
  3. Cambia la proprietà dei file PEM in 'apigee' utente:
    > chown apigee:apigee /opt/apigee/customer/application/*.PEM
  4. Modifica /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
    # Per impostazione predefinita, l'accesso TLS utilizza la porta 9000.
    # Utilizza questa proprietà per specificare una porta diversa.
    # baas.portal.listen=9000


    Utilizza baas.portal.ssl.protocols per impostare i protocolli TLS supportati dal Portale. Per un elenco dei protocolli supportati, vedi elenco di nomi di protocollo SSL definiti da Nginx: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols.
  5. Configura il nodo del portale:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  6. Riavvia il portale:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal reboot
  7. Utilizza la procedura riportata di seguito in "Configurare i nodi dello stack BaaS dell'API per TLS sullo stack o sul portale" per assicurarti che l'URL TLS del portale nel nodo Stack sia corretto.

Configurare i nodi API BaaS per TLS sul Stack o portale

Se includi un bilanciatore del carico davanti ai nodi dello stack o del portale oppure se abiliti TLS direttamente sul nodo Portal o Stack, devi configurare i nodi con gli URL corretti per accedere allo stack e al portale. Ad esempio, i nodi stack richiedono queste informazioni quando:

  • Inclusione di un URL nelle risposte delle richieste API BaaS.
  • L'aggiunta di link nei modelli di email durante la reimpostazione della password o l'invio di altre notifiche.
  • Reindirizzamento degli utenti a pagine specifiche del portale.

Se utilizzi un bilanciatore del carico a fronte dei nodi dello stack o configuri TLS sul nodo dello 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 caricamento. con il bilanciatore del carico di rete passthrough esterno regionale. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Devi eseguire devi includere la porta se stai utilizzando una porta non standard, ovvero qualcosa di diverso dalla porta 80 per HTTP e la porta 443 per HTTPS.

Devi anche impostare la seguente proprietà in /opt/apigee/customer/application/portal.properties se si utilizza un bilanciatore del carico davanti ai nodi dello stack:

baas.portal.config.overrideUrl=http://localhost:8080

Sostituisci http://localhost:8080 con l'URL del con il bilanciatore del carico di rete per lo stack.

Se utilizzi un bilanciatore del carico davanti al nodo del portale o configuri TLS sul nodo dello stack, imposta le seguenti proprietà in usergrid.properties:

usergrid-deployment_portal.url=http://localhost:9000

Sostituisci http://localhost:9000 con l'URL del con il bilanciatore del carico di rete passthrough esterno regionale. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Tu devi includere la porta solo se utilizzi una porta non standard, ovvero qualcosa di diverso da sulla porta 80 per HTTP e sulla porta 443 per HTTPS.

Dopo aver modificato usergrid.properties:

  1. Configura il nodo Stack:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Riavvia lo stack BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid reboot
  3. Se hai modificato portal.properties, configura il nodo Portal:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. Riavvia il portale BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal reboot