Configurazione di TLS per l'API di gestione

Per impostazione predefinita, TLS è disabilitato per l'API di gestione e puoi accedere all'API di gestione di Edge tramite HTTP utilizzando l'indirizzo IP del nodo del server di gestione e la porta 8080. Ad esempio:

http://ms_IP:8080

In alternativa, puoi configurare l'accesso TLS all'API di gestione in modo da potervi accedere nel modulo:

https://ms_IP:8443

In questo esempio, configuri l'accesso TLS in modo che utilizzi la porta 8443. 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.

Per garantire la crittografia del traffico verso e dalla tua API di gestione, configura le impostazioni nel /opt/apigee/customer/application/management-server.properties file.

Oltre alla configurazione TLS, puoi anche controllare la convalida della password (lunghezza e complessità) modificando il file management-server.properties.

Assicurati che la porta TLS sia aperta

La procedura in questa sezione configura TLS per utilizzare la porta 8443 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 8443 -j ACCEPT --verbose

Configura TLS

Modifica il file /opt/apigee/customer/application/management-server.properties per controllare l'utilizzo di TLS sul traffico da e verso l'API di gestione. Se questo file non esiste, creane uno.

Per configurare l'accesso TLS all'API di gestione:

  1. Genera il file JKS dell'archivio chiavi contenente la certificazione TLS e la chiave privata. Per saperne di più, consulta Configurare TLS/SSL per Edge On Premises.
  2. Copia il file JKS del keystore in una directory sul nodo del server di gestione, ad esempio /opt/apigee/customer/application.
  3. Modifica la proprietà del file JKS assegnandola all'utente "apigee":
    chown apigee:apigee keystore.jks

    dove keystore.jks è il nome del file del keystore.

  4. Modifica /opt/apigee/customer/application/management-server.properties per impostare le seguenti proprietà. Se il file non esiste, creane uno:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    dove keyStore.jks è il file dell'archivio chiavi e obfuscatedPassword è la password dell'archivio chiavi offuscata. Per informazioni sulla generazione di una password offuscata, vedi Configurazione di TLS/SSL per Edge on-premise.

  5. Riavvia Edge Management Server utilizzando il comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

L'API di gestione ora supporta l'accesso tramite TLS.

Configura la UI Edge in modo che utilizzi TLS per accedere all'API Edge

Nella procedura precedente, Apigee ha consigliato di lasciare attivo conf_webserver_http.turn.off=false in modo che l'interfaccia utente di Edge possa continuare a effettuare chiamate all'API Edge tramite HTTP.

Utilizza la procedura seguente per configurare l'interfaccia utente di Edge in modo da effettuare queste chiamate solo tramite HTTPS:

  1. Configura l'accesso TLS all'API di gestione come descritto sopra.
  2. Dopo aver confermato che TLS funziona per l'API di gestione, modifica /opt/apigee/customer/application/management-server.properties per impostare la seguente proprietà:
    conf_webserver_http.turn.off=true
  3. Riavvia Edge Management Server eseguendo questo comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Modifica /opt/apigee/customer/application/ui.properties per impostare la seguente proprietà per la UI Edge:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    dove FQ_domain_name è il nome di dominio completo, in base all'indirizzo del certificato del server di gestione, e port è la porta specificata sopra da conf_webserver_ssl.port.

    Se ui.properties non esiste, creane uno.

  5. Solo se hai utilizzato un certificato autofirmato (non consigliato in un ambiente di produzione) durante la configurazione dell'accesso TLS all'API di gestione sopra riportata, aggiungi la seguente proprietà a ui.properties:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    In caso contrario, l'interfaccia utente di Edge rifiuterà un certificato autofirmato.

  6. Riavviare l'interfaccia utente di Edge eseguendo il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Utilizzo di un keystore PKCS12 per i sistemi operativi conformi a FIPS

Se utilizzi Edge per il cloud privato su un sistema operativo compatibile con FIPS, devi utilizzare un keystore PKCS12. Questa operazione è necessaria per rispettare gli standard FIPS. Oltre alle altre configurazioni standard menzionate in questo articolo, aggiungi la seguente configurazione al file management-server.properties:

conf/webserver.properties+keystore.type=PKCS12

Assicurati di applicare questa modifica se il tuo ambiente è compatibile con FIPS per garantire la compatibilità con gli standard di crittografia richiesti.

Proprietà TLS per il server di gestione

La seguente tabella elenca tutte le proprietà TLS/SSL che puoi impostare in management-server.properties:

Proprietà Descrizione

conf_webserver_http.port=8080

Il valore predefinito è 8080.

conf_webserver_ssl.enabled=false

Per attivare/disattivare TLS/SSL. Con TLS/SSL abilitato (true), devi impostare anche le proprietà ssl.port e keystore.path.

conf_webserver_http.turn.off=true

Per attivare/disattivare sia http sia https. Se vuoi utilizzare solo HTTPS, lascia il valore predefinito true.

conf_webserver_ssl.port=8443

La porta TLS/SSL.

Obbligatorio quando TLS/SSL è abilitato (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

Il percorso del file archivio chiavi.

Obbligatorio quando TLS/SSL è attivato (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

Utilizza una password offuscata in questo formato: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

Alias del certificato dell'archivio chiavi facoltativo

conf_webserver_keymanager.password=password

Se il gestore chiavi ha una password, inserisci una versione offuscata della password in questo formato:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

Configura le impostazioni per il tuo magazzino attendibile. Stabilisci se accettare tutti i certificati TLS/SSL (ad esempio per accettare tipi non standard). Il valore predefinito è false. Fornisci il percorso dell'archivio attendibilità e inserisci una password offuscata dell'archivio attendibilità in questo formato:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

Indica le suite di crittografia da includere o escludere. Ad esempio, se scopri una vulnerabilità in un'algoritmo di crittografia, puoi escluderla qui. Separa più crittografie con virgole.

Gli eventuali algoritmi di crittografia rimossi tramite la lista bloccata avranno la precedenza su quelli inclusi tramite la lista consentita.

Nota: per impostazione predefinita, se non vengono specificate liste nere o whitelist, le crittografie che corrispondono alle seguenti espressioni regolari Java vengono escluse per impostazione predefinita.

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

Tuttavia, se specifichi una lista nera, questo filtro viene ignorato e devi inserire nella lista nera tutti i cifrari singolarmente.

Per informazioni sulle suite di crittografia e sull'architettura di crittografia, consulta Java Cryptography Architecture Oracle Providers Documentation for JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Numeri interi che determinano:

  • La dimensione della cache della sessione TLS/SSL (in byte) per memorizzare le informazioni sulla sessione per più client.
  • La durata massima delle sessioni TLS/SSL prima del timeout (in millisecondi).