Configurazione di TLS per l'interfaccia utente di gestione

Per impostazione predefinita, accedi all'interfaccia utente di Edge tramite HTTP utilizzando l'indirizzo IP del nodo del server di gestione e la porta 9000. Ad esempio:

http://ms_IP:9000

In alternativa, puoi configurare l'accesso TLS all'interfaccia utente di Edge in modo da potervi accedere nel modulo:

https://ms_IP:9443

In questo esempio, configuri l'accesso TLS in modo che utilizzi la porta 9443. Tuttavia, questo numero di porta non è richiesto da Edge. Puoi configurare il server di gestione in modo che utilizzi altri valori di porta. L'unico requisito è che il firewall consenta il traffico sulla porta specificata.

Assicurati che la porta TLS sia aperta

La procedura in questa sezione configura TLS in modo che utilizzi la porta 9443 sul server di gestione. Indipendentemente dalla porta utilizzata, devi assicurarti che sia aperta sul server di gestione. Ad esempio, puoi utilizzare il seguente comando per aprirlo:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

Configura TLS

Per configurare l'accesso TLS all'interfaccia utente di gestione, segui la procedura riportata di seguito:

  1. Genera il file JKS dell'archivio chiavi contenente la certificazione TLS e la chiave privata e copialo al nodo del server di gestione. Per ulteriori informazioni, consulta Configurare TLS/SSL per Edge On Premises.
  2. Esegui il seguente comando per configurare TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Inserisci il numero di porta HTTPS, ad esempio 9443.
  4. Specifica se vuoi disattivare l'accesso HTTP all'interfaccia utente di gestione. Per impostazione predefinita, l'interfaccia utente di gestione è accessibile tramite HTTP sulla porta 9000.
  5. Inserisci l'algoritmo dell'archivio chiavi. Il valore predefinito è JKS.
  6. Inserisci il percorso assoluto del file JKS dell'archivio chiavi.

    Lo script copia il file nella directory /opt/apigee/customer/conf sul nodo del server di gestione e modifica la proprietà del file in "apigee".

  7. Inserisci la password dell'archivio chiavi in testo in chiaro.
  8. Lo script riavvia quindi l'interfaccia utente di gestione di Edge. Dopo il riavvio, la UI di gestione supporta l'accesso tramite TLS.

    Puoi visualizzare queste impostazioni in /opt/apigee/etc/edge-ui.d/SSL.sh.

Utilizzo di un file di configurazione per configurare TLS

In alternativa alla procedura precedente, puoi passare un file di configurazione al comando nel passaggio 2 della procedura. Dovrai utilizzare questo metodo se vuoi impostare proprietà TLS facoltative.

Per utilizzare un file di configurazione, crea un nuovo file e aggiungi le seguenti proprietà:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Salva il file in una directory locale con il nome che desideri. Quindi, utilizza il seguente comando per configurare TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

dove configFile è il percorso completo del file salvato.

Utilizzo di un archivio chiavi PKCS12 per i sistemi operativi abilitati per FIPS

Se utilizzi Edge per il cloud privato su un sistema operativo compatibile con FIPS, devi utilizzare un keystore PKCS12. Puoi generare un keystore PKCS12 utilizzando i comandi OpenSSL standard. Quando utilizzi un keystore PKCS12, imposta KEY_ALGO=PKCS12 nel file di configurazione.

Configura la UI Edge quando TLS termina sul bilanciatore del carico

Se hai un bilanciatore del carico che inoltra le richieste all'interfaccia utente di Edge, puoi scegliere di terminare la connessione TLS sul bilanciatore del carico e poi fare in modo che inoltri le richieste all'interfaccia utente di Edge tramite HTTP. Questa configurazione è supportata, ma devi configurare il bilanciatore del carico e l'interfaccia utente di Edge di conseguenza.

La configurazione aggiuntiva è necessaria quando l'interfaccia utente di Edge invia agli utenti email per impostare la password al momento della creazione dell'utente o quando l'utente richiede di reimpostare una password persa. Questa email contiene un URL che l'utente ha scelto per impostare o reimpostare una password. Per impostazione predefinita, se l'interfaccia utente di Edge non è configurata per l'utilizzo di TLS, l'URL nell'email generata utilizza il protocollo HTTP e non HTTPS. Devi configurare il bilanciatore del carico e l'interfaccia utente di Edge in modo che generino un indirizzo email che utilizzi HTTPS.

Per configurare il bilanciatore del carico, assicurati che imposti la seguente intestazione sulle richieste inoltrate all'interfaccia utente di Edge:

X-Forwarded-Proto: https

Per configurare l'interfaccia utente di Edge:

  1. Apri il file /opt/apigee/customer/application/ui.properties in un editor. Se il file non esiste, creane uno:
    vi /opt/apigee/customer/application/ui.properties
  2. Imposta la seguente proprietà in ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Salva le modifiche apportate a ui.properties.
  4. Riavvia la UI Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Impostazione di proprietà TLS facoltative

L'interfaccia utente di Edge supporta proprietà di configurazione TLS facoltative che puoi utilizzare per impostare quanto segue:

  • Protocollo TLS predefinito
  • Elenco dei protocolli TLS supportati
  • Algoritmi TLS supportati
  • Algoritmi di crittografia TLS supportati

Questi parametri facoltativi sono disponibili solo se imposti la seguente proprietà di configurazione nel file di configurazione, come descritto in Utilizzare un file di configurazione per configurare TLS:

TLS_CONFIGURE=y

La tabella seguente descrive queste proprietà:

Proprietà Descrizione
TLS_PROTOCOL Definisce il protocollo TLS predefinito per la UI Edge. Per impostazione predefinita, è TLS 1.2. I valori validi sono TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Definisce l'elenco dei protocolli abilitati come array separato da virgole. Ad esempio:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Tieni presente che devi eseguire l'escape del carattere ".

Per impostazione predefinita, tutti i protocolli sono abilitati.

TLS_DISABLED_ALGO

Definisce le suite di crittografia disattivate e può essere utilizzata anche per impedire l'uso di chiavi di piccole dimensioni per l'handshake TLS. Non è presente alcun valore predefinito.

I valori trasferiti a TLS_DISABLED_ALGO corrispondono ai valori consentiti per jdk.tls.disabledAlgorithms come descritto qui. Tuttavia, devi utilizzare l'interpretazione letterale dei caratteri di spaziatura quando imposti TLS_DISABLED_ALGO:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

Definisce l'elenco di crittografie TLS disponibili come array separato da virgole. Ad esempio:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Tieni presente che il carattere " deve essere preceduto da una sequenza di escape.

L'elenco predefinito delle crittografie abilitate è:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Puoi trovare l'elenco delle crittografie disponibili qui.

Disattivazione dei protocolli TLS

Per disattivare i protocolli TLS, devi modificare il file di configurazione descritto in Utilizzare un file di configurazione per configurare TLS come segue:

  1. Apri il file di configurazione in un editor.
  2. Per disattivare un singolo protocollo TLS, ad esempio TLSv1.0, aggiungi quanto segue al file di configurazione:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Per disabilitare più protocolli, ad esempio TLSv1.0 e TLSv1.1, aggiungi quanto segue al file di configurazione:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Salva le modifiche apportate al file di configurazione.
  4. Esegui il seguente comando per configurare TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    dove configFile è il percorso completo del file di configurazione.

  5. Riavvia l'interfaccia utente di Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Usa cookie sicuri

Apigee Edge for Private Cloud supporta l'aggiunta del flag secure all'intestazione Set-Cookie per le risposte dall'interfaccia utente di Edge. Se questo flag è presente, il cookie può essere inviato solo tramite canali abilitati per TLS. Se non è presente, il cookie può essere inviato su qualsiasi canale, che sia sicuro o meno.

I cookie senza il flag secure possono potenzialmente consentire a un malintenzionato di acquisire e riutilizzare il cookie o di rubare una sessione attiva. Pertanto, la best practice prevede di abilitare questa impostazione.

Per impostare il flag secure per i cookie della UI di Edge:

  1. Apri il seguente file in un editor di testo:
    /opt/apigee/customer/application/ui.properties

    Se il file non esiste, creane uno.

  2. Imposta la proprietà conf_application_session.secure su true nel file ui.properties, come mostrato nell'esempio seguente:
    conf_application_session.secure=true
  3. Salva le modifiche.
  4. Riavvia l'interfaccia utente di Edge utilizzando l'utilità apigee-serice, come mostrato nell'esempio seguente:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Per verificare che la modifica funzioni, controlla le intestazioni delle risposte della UI Edge utilizzando un'utilità come curl, ad esempio:

curl -i -v https://edge_UI_URL

L'intestazione deve contenere una riga simile alla seguente:

Set-Cookie: secure; ...

Disattivare TLS nell'interfaccia utente di Edge

Per disabilitare TLS nella UI perimetrale, utilizza il seguente comando:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl