Riferimento alle proprietà host virtuali

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

Rappresentazione dell'host virtuale

L'oggetto XML utilizzato per definire un host virtuale si basa sulla versione di Edge: Cloud o Private Cloud.

Se sei un cliente di Private Cloud, devi assicurarti di utilizzare il codice XML corretto per la tua versione di Edge.

Cloud e cloud privato 4.17.01 e versioni successive

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Private Cloud dalla versione 4.16.01 alla 4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Cloud privato 4.15.07 e versioni precedenti

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

Proprietà di configurazione dell'host virtuale

La seguente tabella elenca le proprietà utilizzate per configurare un host virtuale:

Proprietà Descrizione Predefinito Obbligatorio
VirtualHost

Specifica il nome dell'host virtuale. Utilizza questo nome per fare riferimento all'host virtuale quando configuri un proxy API.

I caratteri che puoi utilizzare nell'attributo name sono limitati a: A-Z0-9._\-$%.

Nessuno
Porta

Specifica il numero di porta utilizzato dall'host virtuale. Assicurati che la porta sul router Edge sia aperta.

Se specifichi una porta in un elemento hostalias, il numero di porta specificato da <Port> deve corrispondere.

Per Cloud: devi specificare la porta 443 quando crei un host virtuale. Se viene omessa, per impostazione predefinita la porta è impostata su 443. Se hai già un host virtuale che utilizza una porta diversa da 443, non puoi modificarla.

Per le release Private Cloud 4.16.01-4.17.05: quando crei un host virtuale, specifica la porta del router utilizzata dall'host virtuale. Ad esempio, porta 9001. Per impostazione predefinita, il router funziona come l'utente "apigee" che non ha accesso alle porte con privilegi, in genere le porte 1024 e precedenti. Se vuoi creare un host virtuale che leghi il router a una porta protetta, devi configurare il router in modo che funzioni come un utente con accesso a queste porte. Per saperne di più, consulta Configurare un host virtuale.

Per le release del cloud privato precedenti alla 4.16.01: un router può ascoltare una sola connessione HTTPS per host virtuale, su una porta specifica, con il certificato specificato. Pertanto, più host virtuali non possono utilizzare lo stesso numero di porta se la terminazione TLS avviene sul router alla porta specificata.

Nessuno
BaseUrl Sostituisce l'URL visualizzato dall'interfaccia utente di Edge per un proxy API di cui è stato eseguito il deployment nell'host virtuale. È utile quando è presente un bilanciatore del carico esterno davanti agli Edge Router. Per saperne di più, consulta Configurare l'accesso TLS a un'API per il private cloud.

Il valore di BaseUrl deve includere il protocollo (ad es. "http://" o "https://").

Nessuno No
OCSPStapling

Un client OCSP (Online Certificate Status Protocol) invia una richiesta di stato a un rispondente OCSP per determinare se il certificato TLS è valido. La risposta indica se il certificato TLS è valido e non è stato revocato.

Se abilitata, la collegata OCSP consente a Edge, che agisce come server TLS per TLS unidirezionale, di eseguire query direttamente sul risponditore OCSP e poi memorizzare nella cache la risposta. Edge restituisce quindi questa risposta al client TLS o la incolla nell'ambito dell'handshake TLS. Per saperne di più, consulta Attivare l'applicazione di OCSP Stapling sul server.

Per abilitare l'unione OCSP, è necessario attivare TLS. Imposta su on per attivare. Il valore predefinito è off.

off No
HostAliases
HostAlias

Il nome DNS visibile al pubblico dell'host virtuale sul router, eventualmente incluso il numero di porta. La combinazione del nome dell'alias host e del numero di porta per l'host virtuale deve essere univoca per tutti gli host virtuali nell'installazione di Edge. Ciò significa che più host virtuali possono utilizzare lo stesso numero di porta se hanno alias host diversi.

Devi creare una voce DNS e un record CNAME che corrispondano all'alias dell'host, che deve corrispondere alla stringa passata dal client nell'intestazione Host.

Il numero di porta in HostAlias è facoltativo. Se specifichi la porta come parte dell'alias host, devi specificare anche la stessa porta utilizzando l'elemento <Port>. In alternativa, puoi specificare due elementi HostAlias, uno con il numero di porta e uno senza.

Puoi avere più definizioni di HostAlias nella stessa definizione di host virtuale, corrispondenti a più voci DNS per l'HostAlias host virtuale, ma non per più porte. Se vuoi più porte, crea più definizioni di host virtuali con porte diverse.

Puoi includere il carattere jolly "*" nell'alias host. Il carattere jolly "*" può essere solo all'inizio (prima del primo ".") dell'alias host e non può essere combinato con altri caratteri. Ad esempio *.example.com. Il certificato TLS per l'host virtuale deve avere un carattere jolly corrispondente nel nome CN del certificato. Ad esempio, *.example.com. L'utilizzo di un carattere jolly in un alias host virtuale consente ai proxy API di gestire le chiamate indirizzate a più sottodomini, ad esempio alpha.example.com, beta.example.com o live.example.com. L'utilizzo di un alias jolly ti consente inoltre di utilizzare meno host virtuali per ambiente per rispettare i limiti del prodotto, poiché un host virtuale con un carattere jolly viene conteggiato come un solo host virtuale.

Per Cloud: se hai già un host virtuale che utilizza una porta diversa da 443, non puoi aggiungere o rimuovere un alias host.

Per Private Cloud: se imposti l'alias host utilizzando gli indirizzi IP dei router e non le voci DNS, aggiungi un alias host separato per ogni router, specificando l'indirizzo IP di ciascun router e la porta dell'host virtuale.

Nessuno
Interfacce Disponibile solo per Edge for Private Cloud.
Interfaccia

Specifica le interfacce di rete a cui vuoi che port sia associato. Se ommetti questo elemento, la porta viene associata a tutte le interfacce.

Ad esempio, per specificare di associare la porta solo a en0:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

Determina le interfacce disponibili nel tuo sistema eseguendo il comando "ifconfig -a".

Nessuno Tutte le interfacce
RetryOptions Disponibile per Edge Cloud e per Private Cloud 4.18.01 e versioni successive.
RetryOption

Configura la modalità di reazione del router per questo host virtuale quando il Message Processor si arresta.

Puoi specificare più valori utilizzando <RetryOption>. I valori validi includono:

off Disattiva il nuovo tentativo e l'host virtuale restituisce un codice di errore su una richiesta.
http_599 (Valore predefinito) Se il router riceve una risposta HTTP 599 dal gestore di messaggi, inoltra la richiesta al gestore di messaggi successivo.

HTTP 599 è un codice di risposta speciale generato da un elaboratore di messaggi al momento dell'arresto. Il Message Processor tenta di completare tutte le richieste esistenti, ma per le nuove richieste risponde con HTTP 599 per segnalare al Router di riprovare la richiesta sul successivo Message Processor.

error Se si è verificato un errore durante la connessione con il processore di messaggi, il passaggio di una richiesta o la lettura della relativa intestazione della risposta, il router inoltra la richiesta al processore di messaggi successivo.
timeout Se si verifica un timeout durante la creazione di una connessione con il Message Processor, la trasmissione di una richiesta o la lettura dell'intestazione di risposta, il Router inoltra la richiesta al successivo Message Processor.
invalid_header Se l'Elaboratore di messaggi ha restituito una risposta vuota o non valida, il Router forwarda la richiesta all'Elaboratore di messaggi successivo.
http_XXX Se il Message Processor ha restituito una risposta con il codice HTTP XXX, il Router inoltra la richiesta al successivo Message Processor.

Se specifichi più valori, il router utilizza un operatore OR logico per combinarli.

Ad esempio:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Disponibile per Private Cloud 4.18.01 e versioni successive e per Edge Cloud inviando una richiesta all'assistenza Apigee Edge.
ListenOption

Se utilizzi un ELB in modalità pass-thru TCP per gestire le richieste ai router perimetrali, il router considera l'indirizzo IP dell'ELB come IP client anziché come IP client effettivo. Se il router richiede l'IP client reale, attiva proxy_protocol sull'ELB in modo che trasmetta l'IP client nel pacchetto TCP. Sul router, devi anche impostare <ListenOption> sull'host virtuale su proxy_protocol. Poiché l'ELB è in modalità pass-through TCP, in genere chiudi TLS sul router. Di solito, quindi, configuri l'host virtuale per l'utilizzo di proxy_protocol solo quando lo configuri anche per l'utilizzo di TLS.

Il valore predefinito per <ListenOption> è una stringa vuota.

Ad esempio:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

Per annullare in un secondo momento l'impostazione di <ListenOption>, aggiorna il host virtuale e ometti il tag <ListenOptions> dall' aggiornamento.

SSLInfo
Attivato

Attiva TLS/SSL unidirezionale. Devi aver definito un archivio chiavi contenente il certificato e la chiave privata.

Per Cloud: devi disporre di un certificato firmato da un'entità attendibile, come Symantec o VeriSign. Non puoi utilizzare un certificato autofirmato o certificati foglia firmati da un'autorità di certificazione autofirmata.

Per Cloud: se l'host virtuale esistente è configurato per utilizzare una porta diversa da 443, non puoi modificare l'impostazione TLS. Ciò significa che non puoi modificare l'impostazione TLS da attivata a disattivata o viceversa.

falso No
ClientAuthEnabled Attiva TLS bidirezionale o client tra Edge (server) e l'app (client) che effettua la richiesta. Per abilitare TLS bidirezionale, devi configurare un truststore su Edge contenente il certificato del client TLS. falso No
KeyStore

Il nome del keystore su Edge.

Apigee consiglia di utilizzare un riferimento per specificare il nome dell'archivio chiavi in modo da poter modificare l'archivio chiavi senza dover riavviare i router. Per saperne di più, consulta Opzioni per la configurazione di TLS.

Nessuno Sì se Enabled è true
KeyAlias L'alias specificato quando hai caricato il certificato e la chiave privata nell'archivio chiavi. Devi specificare il nome dell'alias letteralmente. Non puoi utilizzare un riferimento. Per saperne di più, consulta la sezione Opzioni per la configurazione di TLS. Nessuno Sì se Enabled è true
TrustStore

Il nome dell'archivio attendibilità su Edge che contiene il certificato o la catena di certificati utilizzata per TLS a due vie. Obbligatorio se <ClientAuthEnabled> è true.

Apigee consiglia di utilizzare un riferimento per specificare il nome dell'archivio di attendibilità in modo da poter modificare l'archivio di attendibilità senza dover riavviare i router. Per saperne di più, consulta la sezione Opzioni per la configurazione di TLS.

Nessuno No
IgnoreValidationErrors

Se impostato su true, consente di ignorare gli errori del certificato TLS. È simile all'opzione "-k" di cURL.

Questa opzione è valida per la configurazione di TLS per i server target e gli endpoint target, nonché per la configurazione di host virtuali che utilizzano TLS bidirezionale.

Se utilizzato con un endpoint/server di destinazione, se il sistema di backend utilizza SNI e restituisce un certificato con un DN (Distinguished Name) dell'oggetto che non corrisponde al nome host, non è possibile ignorare l'errore e la connessione non va a buon fine.

falso No
Cifrari

Solo per Edge for Private Cloud versione 4.15.07 e precedenti.

Specifica le crittografie supportate dall'host virtuale. Se non vengono specificati algoritmi di crittografia, tutti gli algoritmi di crittografia disponibili per la JVM saranno consentiti.

Per limitare le cifre, aggiungi i seguenti elementi:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Tutti supportati dalla JVM No
Protocolli

Solo per Edge for Private Cloud versione 4.15.07 e precedenti.

Specifica i protocolli supportati dall'host virtuale. Se non vengono specificati protocolli, verranno consentiti tutti i protocolli disponibili per la JVM.

Per limitare i protocolli, aggiungi i seguenti elementi:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Tutti supportati dalla JVM No
UseBuiltInFreeTrialCert Disponibile solo per Edge Cloud.
UseBuiltInFreeTrialCert

Se hai un account Edge for Cloud a pagamento e non disponi ancora di un certificato e una chiave TLS, puoi creare un host virtuale che utilizzi il certificato e la chiave della prova senza costi di Apigee. Ciò significa che puoi creare l'host virtuale senza prima creare un keystore.

Il certificato della prova senza costi di Apigee è definito per un dominio di *.apigee.net. Di conseguenza, anche il <HostAlias> dell'host virtuale deve essere nel formato *.apigee.net.

Consulta Definire un host virtuale che utilizza il certificato e la chiave della prova senza costi di Apigee.

falso No
PropagateTLSInformation Disponibile in versione alpha solo per Edge Cloud.
ConnectionProperties

Consente a Edge di acquisire le informazioni sulla connessione TLS. Queste informazioni sono quindi disponibili come variabili di flusso in un proxy API. Per ulteriori informazioni, consulta Accesso alle informazioni di connessione TLS in un proxy API.

falso No
ClientProperties

Consente di acquisire i dettagli del certificato client acquisiti da Edge in TLS bidirezionale. Queste informazioni sono quindi disponibili come variabili di flusso in un proxy API. Per saperne di più, consulta Accesso alle informazioni sulla connessione TLS in un proxy API.

falso No
Proprietà Disponibile per Edge Cloud e per Private Cloud 4.17.01 e versioni successive.
proxy_read_timeout

Imposta la durata del timeout, in secondi, tra i processori dei messaggi e il router. Il router interrompe la connessione e restituisce una risposta HTTP 504 se non riceve una risposta dal processore di messaggi prima della scadenza di questa durata.

Il valore di proxy_read_timeout deve essere maggiore del valore di timeout target utilizzato dall'elaborazione dei messaggi. In questo modo, il router non scade prima che il Message Processor abbia avuto il tempo di restituire una risposta. Il timeout target predefinito per il processore di messaggi è 55 secondi, 55000 millisecondi, come definito dal token conf_http_HTTPTransport.io.timeout.millis per il processore di messaggi.

57 No
keepalive_timeout

Imposta la durata del timeout, in secondi, tra il client e il router quando il client effettua una richiesta contenente l'intestazione Keep-Alive. Il router mantiene la connessione aperta fino alla scadenza della durata.

Il router non chiuderà la connessione se è in attesa di una risposta dall'Elaboratore di messaggi. Il timeout inizia solo dopo che il router restituisce la risposta al client.

65 No
ssl_ciphers

Imposta le crittografie supportate dall'host virtuale, sostituendo quelle predefinite impostate sul router.

Specifica un elenco di cifre delimitate da due punti, nel seguente formato:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

Per informazioni sulla sintassi e sui valori consentiti da questo token, visita la pagina https://www.openssl.org/docs/man1.0.2/man1/ciphers.html. Tieni presente che questo token utilizza i nomi delle crittografie OpenSSL, ad esempio AES128-SHA256, e non i nomi delle crittografie Java/JSSE, ad esempio TLS_RSA_WITH_AES_128_CBC_SHA256.

HIGH:!aNULL:

!MD5:

!DH+3DES:

!kEDH

No
ssl_protocols

Disponibile solo per Edge for Private Cloud.

Imposta i protocolli TLS supportati dall'host virtuale, come elenco delimitato da spazi, eseguendo l'override dei protocolli predefiniti impostati sul router.

Nota: se due host virtuali condividono la stessa porta, devono impostare ssl_protocols sugli stessi protocolli. Ciò significa che gli host virtuali che condividono la stessa porta devono supportare esattamente gli stessi protocolli.

Specifica un elenco di protocolli TLS delimitati da spazi, nel seguente formato:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 No
proxy_request_buffering

Attiva (on) o disattiva (off) il buffering del corpo della richiesta. Quando il buffering è attivo, il router esegue il buffer dell'intero corpo della richiesta prima di inviarlo al processore di messaggi. In caso di errore, il router può riprovare con un altro processore di messaggi.

Se è disattivato, il buffering viene disattivato e il corpo della richiesta viene inviato al Message Processor immediatamente dopo la ricezione. Se si verifica un errore, il router non riprova a inviare la richiesta a un altro elaboratore di messaggi.

on No
proxy_buffering Attiva (on) o disattiva (off) il buffering della risposta. Quando il buffer è attivo, il router memorizza il buffer della risposta. Quando il buffering è disattivato, la risposta viene passata al client in modo sincrono, immediatamente dopo la ricezione da parte del router. on No