Configurazione di TLS per l'API di gestione

Per impostazione predefinita, il protocollo TLS è disabilitato per l'API di gestione e si accede all'API di gestione perimetrale 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 è obbligatorio per 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 da e verso l'API di gestione, configura le impostazioni nella /opt/apigee/customer/application/management-server.properties .

Oltre alla configurazione TLS, puoi controllare la convalida delle password (lunghezza della password e l'efficacia) modificando il file management-server.properties.

Assicurati che la porta TLS sia aperta

La procedura descritta in questa sezione configura TLS in modo che utilizzi la porta 8443 sul server di gestione. Indipendentemente dalla porta che utilizzi, devi assicurarti che sia aperta sul server di gestione Server. 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 verso e dalla tua 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 maggiori informazioni consulta Configurazione di TLS/SSL per Edge on-premise.
  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, crealo:
    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. Consulta Configurazione di TLS/SSL per Edge on-premise per le informazioni sulla generazione di una password offuscata.

  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 per l'utilizzo di TLS per l'accesso l'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 verificato 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. Riavviare Edge Management Server eseguendo il seguente 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 l'interfaccia utente di Edge:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    Dove FQ_domain_name è il nome di dominio completo, come indicato nel tuo certificato del server di gestione e port è la porta specificata sopra conf_webserver_ssl.port.

    Se ui.properties non esiste, crealo.

  5. Solo se hai utilizzato un certificato autofirmato (non consigliato in un ambiente ) quando configuri l'accesso TLS all'API di gestione indicata sopra, aggiungi il parametro 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 abilitato per FIPS, devi utilizzare un archivio chiavi 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 è abilitato per FIPS per garantire la compatibilità con gli standard di crittografia richiesti.

Proprietà TLS per il server di gestione

La tabella seguente 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. Se TLS/SSL è abilitato (true), devi impostare anche ssl.port e le proprietà keystore.path.

conf_webserver_http.turn.off=true

Per attivare/disattivare http insieme a https. Se vuoi utilizzare solo HTTPS, lascia la 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 dell'archivio chiavi.

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

conf_webserver_keystore.password=password

Utilizza una password offuscata nel seguente 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 archivio attendibilità. Scegli se accettare tutti Certificati TLS/SSL (ad esempio per accettare tipi non standard). Il valore predefinito è false. Fornisci il percorso all'archivio attendibile e inserisci una password offuscata dell'archivio attendibile 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 le virgole.

Qualsiasi crittografia rimossa tramite la lista nera avrà la precedenza su qualsiasi crittografia inclusa tramite la lista consentita.

Nota: per impostazione predefinita, se non viene specificata una lista nera o una lista consentita, le chiavi corrispondenti alla seguente espressione regolare Java sono escluse per impostazione predefinita.

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

Tuttavia, se specifichi una lista nera, questo filtro viene sostituito e devi inserire singolarmente tutte le crittografie nella lista nera.

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 delle sessioni TLS/SSL prima che scadano (in millisecondi).