Configurazione degli host virtuali per il cloud

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

Un cliente Cloud con un account a pagamento può creare un host virtuale in un'organizzazione.

Chi può creare e modificare gli host virtuali nel cloud

La creazione e la modifica degli host virtuali sono disponibili per gli account a pagamento solo in Edge Cloud. L'utente che crea l'host virtuale deve avere il ruolo di amministratore dell'organizzazione o un ruolo personalizzato con autorizzazioni per modificare un host virtuale. Gli utenti con altri ruoli non sono autorizzati a creare host virtuali.

Ad esempio, i clienti a pagamento possono:

  • Attiva TLS unidirezionale e bidirezionale
  • Specifica il keystore/truststore utilizzato dall'host virtuale

Gli account senza costi e di prova non possono creare o modificare gli host virtuali e sono limitati agli host virtuali creati per loro al momento della registrazione di Edge. Per saperne di più sui piani tariffari di Edge, consulta https://apigee.com/api-management/#/pricing.

Requisiti per la configurazione di un host virtuale per il cloud

La seguente tabella riassume i requisiti per la creazione di un host virtuale:

Categoria Requisito Descrizione
Tipo di account A pagamento Gli account senza costi e di prova non possono creare o modificare gli host virtuali.
Ruolo utente amministratore dell'organizzazione Solo un amministratore dell'organizzazione può creare un host virtuale o un utente con un ruolo personalizzato che abbia le autorizzazioni per modificare un host virtuale.
Numero di host virtuali Massimo 20

Puoi avere al massimo 20 host virtuali per ogni organizzazione/ambiente nel cloud.

Nota: non esiste un limite al numero di host virtuali nel Private Cloud.

La maggior parte delle organizzazioni/degli ambienti utilizza due host virtuali: uno per l'accesso HTTP e uno per l'accesso HTTPS. Potresti aver bisogno di altri host virtuali se la tua organizzazione/il tuo ambiente consente l'accesso utilizzando nomi di dominio diversi.

URL di base Include il protocollo Quando definisci l'URL base per l'host virtuale, nell'interfaccia utente o con l'API, devi specificare il protocollo (ad es. "http://" o "https://") all'interno dell'URL.
Porta 443

Puoi creare un host virtuale solo sulla porta 443.

Tieni presente che puoi creare più host virtuali sulla porta 443 purché abbiano alias host univoci e supportino tutti TLS.

TLS Obbligatorio

Puoi creare solo un host virtuale che supporta TLS su HTTPS. Devi aver già creato un keystore e, facoltativamente, un truststore contenenti la chiave e il certificato TLS.

Devi disporre di un certificato firmato da un'entità attendibile, come Symantec o VeriSign. Non puoi utilizzare un certificato autofirmato.

Se hai bisogno di accedere tramite HTTP, contatta l'assistenza Apigee Edge.

Protocollo TLS TLS 1.2

Edge in the Cloud supporta solo la versione 1.2 di TLS.

Alias host Unico nell'organizzazione e nell'ambiente L'alias host non esiste per un'altra combinazione di organizzazione/ambiente.
Nome di dominio Di proprietà del cliente

Devi essere proprietario del nome di dominio specificato nell'host virtuale. Edge verifica che il nome di dominio, come definito dall'alias host, corrisponda ai metadati nel certificato TLS.

In particolare, Edge controlla le seguenti informazioni nel certificato:

  • CN - Nome comune
  • SAN - Nome alternativo del soggetto

I caratteri jolly sono consentiti nel SAN o nel CN, ad esempio *.myco.net.

Edge convalida anche che il certificato non sia scaduto.

Supporto SNI per le app client Tutte le app client che accedono all'host virtuale devono supportare SNI.

Il supporto di SNI è obbligatorio per tutte le app.

Creare un host virtuale utilizzando un browser

La maggior parte degli esempi in questa sezione utilizza l'API Edge per creare o modificare gli host virtuali, ma puoi creare un host virtuale nell'interfaccia utente di Edge.

Per creare un host virtuale utilizzando l'interfaccia utente di Edge:

  1. Accedi ad apigee.com/edge.
  2. Seleziona Amministrazione > Host virtuali.
  3. Seleziona l'ambiente, ad esempio prod o test.
  4. Seleziona + Host virtuale per creare un host virtuale o seleziona il nome di un host virtuale esistente per modificarlo.
  5. Consulta la tabella precedente per informazioni dettagliate su come compilare i campi dell'host virtuale.

Definizione di un host virtuale per TLS unidirezionale

Un oggetto XML che definisce l'host virtuale. Ad esempio, il seguente oggetto XML definisce un host virtuale per TLS unidirezionale:

<VirtualHost name="myTLSVHost"> 
    <HostAliases> 
        <HostAlias>api.myCompany.com</HostAlias> 
    </HostAliases> 
    <Port>443</Port> 
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>false</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
    </SSLInfo>
</VirtualHost>

In questa definizione:

  • Specifica name come myTLSVHost. Utilizza il nome per fare riferimento all'host virtuale in un proxy API o in una chiamata API.
  • Specifica l'alias host come api.laMiaAzienda.com. Si tratta del dominio pubblico utilizzato per accedere alle API come definito da una definizione DNS e da un record CNAME.
  • Specifica il numero di porta come 443. Se omessa, per impostazione predefinita la porta è impostata su 443.
  • Attiva TLS come richiesto.

    L'elemento <Enable> è impostato su true per attivare TLS unidirezionale e gli elementi <KeyStore> specificano il keystore e l'alias chiave utilizzati dalla connessione TLS.

    Per attivare TLS bidirezionale, imposta <ClientAuthEnabled> su true e specifica un truststore utilizzando l'elemento <TrustStore>. L'archivio attendibile contiene l'emittente del certificato del client e la catena CA del certificato, che è obbligatoria.

    Nota: poiché Edge supportava inizialmente SSL, il tag utilizzato per configurare TLS è denominato <SSLInfo>.

Tieni presente che esistono proprietà aggiuntive che puoi impostare nell'host virtuale. Per un riferimento a tutte le proprietà, consulta la sezione Informazioni di riferimento sulle proprietà dell'host virtuale.

Decidere come specificare il nome del keystore e del truststore nell'host virtuale

Quando configuri un host virtuale per supportare TLS, specifica un keystore utilizzando un riferimento. Un riferimento è una variabile che contiene il nome dell'archivio chiavi o del truststore, anziché specificare direttamente il nome dell'archivio chiavi o del truststore, come mostrato di seguito:

    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>false</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
    </SSLInfo>

Il vantaggio dell'utilizzo di un riferimento è che puoi modificare il valore del riferimento per modificare il keystore utilizzato dall'host virtuale, in genere perché il certificato nel keystore corrente scade nel prossimo futuro. La modifica del valore del riferimento non richiede il riavvio dell'Edge Router. Per saperne di più su come creare e modificare i riferimenti, consulta Utilizzare i riferimenti.

Puoi utilizzare solo un riferimento al keystore e al truststore; non puoi utilizzare un riferimento all'alias. Quando modifichi il riferimento a un archivio chiavi, assicurati che il nome dell'alias del certificato sia lo stesso del vecchio archivio chiavi.

Restrizioni nell'utilizzo dei riferimenti a keystore e truststore

Devi tenere conto della seguente limitazione quando utilizzi i riferimenti ai keystore e ai truststore:

  • Puoi utilizzare i riferimenti a keystore e truststore negli host virtuali solo se supporti SNI e se termini SSL sui router Apigee.
  • Se hai un bilanciatore del carico davanti ai router Apigee e termini TLS sul bilanciatore del carico, non puoi utilizzare i riferimenti a keystore e truststore negli host virtuali.

Definizione di un host virtuale per TLS bidirezionale

Per attivare TLS bidirezionale, imposta l'elemento <ClientAuthEnabled> su true e specifica un truststore utilizzando un riferimento con l'elemento <TrustStore>. L'archivio attendibile contiene l'emittente del certificato del client e la catena CA del certificato, che è obbligatoria. Il client deve inoltre essere configurato correttamente per TLS bidirezionale.

Per creare un host virtuale per TLS bidirezionale, crea un oggetto XML che definisce l'host virtuale:

<VirtualHost name="myTLSVHost"> 
    <HostAliases> 
        <HostAlias>api.myCompany.com</HostAlias> 
    </HostAliases> 
    <Port>443</Port> 
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTestTruststoreRef</TrustStore> 
    </SSLInfo>
</VirtualHost>

In questa definizione:

  • Attiva TLS bidirezionale impostando <ClientAuthEnabled> su true.
  • Specifica il riferimento al truststore utilizzando l'elemento <TrustStore>. L'archivio attendibile contiene l'emittente del certificato del client e la catena CA del certificato, che è obbligatoria.

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

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 *.apigee.net. Pertanto, anche il <HostAlias> dell'host virtuale deve essere nel formato *.apigee.net.

Se esegui TLS bidirezionale, devi comunque impostare l'elemento <ClientAuthEnabled> su true e specificare un truststore utilizzando un riferimento con l'elemento <TrustStore> come descritto sopra in Definizione di un host virtuale per il TLS bidirezionale.

Un oggetto XML che definisce l'host virtuale utilizzando il certificato e la chiave di prova senza costi di Apigee omette gli elementi <KeyStore> e <KeyAlias> e li sostituisce con l'elemento <UseBuiltInFreeTrialCert>, come mostrato di seguito:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

Il valore predefinito dell'elemento <UseBuiltInFreeTrialCert> è false.

Per TLS bidirezionale, definisci l'host virtuale come:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

Nell'interfaccia utente di Edge, seleziona l'opzione Utilizza il certificato di prova senza costi integrato quando crei l'host virtuale per utilizzare la chiave e il certificato Apigee senza costi:

Seleziona Utilizza il certificato della prova senza costi integrato

Creazione di un host virtuale

Per creare l'host virtuale, segui la procedura riportata di seguito:

  1. Crea una voce DNS e un record CNAME per il tuo dominio pubblico, api.myCompany.com in questo esempio, che rimandi a [org]-[environment].apigee.net.
  2. Crea e configura un keystore, denominato myTestKeystore in questo esempio, utilizzando la procedura descritta qui: Creare keystore e truststore utilizzando l'interfaccia utente di Edge. Per questo esempio, assicurati che il keystore utilizzi un nome di alias myKeyAlias per il certificato e la chiave privata.
  3. Carica il certificato e la chiave nell'archivio chiavi. Assicurati che il nome di dominio specificato dal tuo certificato corrisponda all'alias host che vuoi utilizzare per l'host virtuale.
  4. Crea un riferimento al keystore utilizzando l'API o l'interfaccia utente di Edge. Il riferimento specifica il nome del keystore e il tipo di riferimento come KeyStore. Per saperne di più su come creare e modificare i riferimenti, consulta Utilizzare i riferimenti.

  5. Crea l'host virtuale utilizzando l'API Crea un host virtuale. Assicurati di specificare il riferimento e l'alias della chiave del keystore corretti. Per utilizzare l'API, utilizza la seguente chiamata API POST per creare il keystore denominato myTLSVHost:
    curl -X POST -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
      </VirtualHost>' \
      -u orgAdminEmail:password

    Se esegui TLS bidirezionale con il client, imposta <ClientAuthEnabled> su true e specifica il truststore utilizzando l'elemento <TrustStore>. Il client deve essere configurato correttamente per TLS bidirezionale, il che significa che Edge ha un truststore contenente l'emittente del certificato e la catena di certificati del client. Crea il truststore utilizzando la procedura descritta qui: Creazione di keystore e truststore utilizzando l'interfaccia utente di Edge.

  6. Se hai proxy API esistenti, aggiungi l'host virtuale all'elemento <HTTPConnection> in ProxyEndpoint. L'host virtuale viene aggiunto automaticamente a tutti i nuovi proxy API. Consulta Configurare un proxy API per l'utilizzo di un host virtuale.

    .

Dopo aver aggiornato un proxy API per utilizzare l'host virtuale e aver creato la voce DNS e il record CNAME per l'alias host, puoi accedere al proxy API come mostrato di seguito:

https://api.myCompany.com/v1/{project-base-path}/{resource-path}

Ad esempio:

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

Modifica di un host virtuale

I clienti Cloud a pagamento eseguono due attività principali per modificare un host virtuale esistente:

  1. Modifica del valore di un riferimento a un keystore o a un truststore.

    Nota: dopo aver impostato un <KeyStore> o un <TrustStore> per utilizzare un riferimento, puoi modificare il valore del riferimento in qualsiasi momento. Tuttavia, se vuoi modificare <KeyStore> o <TrustStore> per utilizzare un riferimento diverso o modificare <KeyAlias> per utilizzare un alias diverso, devi contattare l'assistenza Apigee Edge.
  2. Modifica delle proprietà TLS dell'host virtuale.

Modifica del valore di un riferimento

Puoi modificare il valore di un riferimento per cambiare il keystore o il truststore utilizzato da un host virtuale.

Prima di modificare il valore del riferimento:

  1. Crea un nuovo archivio chiavi e carica un certificato e una chiave come descritto in Creare archivi chiavi e truststore utilizzando l'interfaccia utente di Edge. Nel nuovo keystore, assicurati di utilizzare lo stesso nome per l'alias della chiave usato nel keystore esistente.
  2. Se necessario, crea un nuovo truststore e carica un certificato come descritto in Creare keystore e truststore utilizzando l'interfaccia utente di Edge.
  3. Modifica il riferimento come descritto in Utilizzare i riferimenti.

Modifica delle proprietà TLS dell'host virtuale

I clienti a pagamento possono utilizzare l'API Aggiorna un host virtuale per aggiornare un host virtuale. Questa API ti consente di impostare tutte le proprietà per l'host virtuale descritte in Riferimento alle proprietà dell'host virtuale.

Quando modifichi l'host virtuale, Edge esegue una convalida simile a quella eseguita quando crei un host virtuale. In altre parole, in caso di modifica, Edge convalida che:

  • Il dominio specificato dall'alias host non è utilizzato in un'altra organizzazione e in un altro ambiente.
  • Il nome di dominio è di tua proprietà. In particolare, Edge verifica che le seguenti informazioni nel certificato corrispondano all'alias host:
    • CN - Nome comune
    • SAN - Nome alternativo del soggetto
    • Edge convalida che il certificato non sia scaduto.

Per modificare un host virtuale utilizzando l'API Edge, svolgi i seguenti passaggi:

  1. Aggiorna l'host virtuale utilizzando l'API Aggiorna un host virtuale. Quando utilizzi l'API, devi specificare la definizione completa dell'hosting virtuale nel corpo della richiesta, non solo gli elementi che vuoi modificare. In questo esempio, imposti il valore della proprietà proxy_read_timeout:

    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
        <Properties>
           <Property name="proxy_read_timeout">50</Property>
             </Properties>
      </VirtualHost>' \
      -u orgAdminEmail:password

Modificare un host virtuale per utilizzare i riferimenti al keystore e al truststore

Tutti i nuovi host virtuali per Edge in Cloud fanno riferimento al keystore e al truststore. I riferimenti ti consentono di modificare il keystore e il truststore senza contattare l'assistenza di Apigee Edge.

Gli host virtuali precedenti su Apigee Edge potrebbero non essere configurati per utilizzare i riferimenti per i keystore e i truststore. In questo caso, puoi aggiornare l'host virtuale in modo che utilizzi un riferimento.

Aggiornamento di un host virtuale per utilizzare un riferimento

Per aggiornare l'host virtuale, segui questa procedura:

  1. Se necessario, crea un nuovo archivio chiavi e carica una certificazione come descritto in Creare archivi chiavi e truststore utilizzando l'interfaccia utente di Edge. Se hai già un keystore, puoi configurare un riferimento che rimandi a questo.
  2. Crea un nuovo riferimento al keystore.
  3. Se necessario, crea un nuovo truststore e carica una certificazione. Se hai già un truststore, puoi configurare un riferimento che lo indichi.
  4. Crea un nuovo riferimento al truststore.
  5. Aggiorna l'host virtuale per impostare il keystore, l'alias, il truststore e qualsiasi altra proprietà TLS. Il payload per la chiamata è:
    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost  name="myTLSVHost">
            <HostAliases>
              <HostAlias>api.myCompany.com</HostAlias>
            </HostAliases>
            <Port>443</Port>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>true</ClientAuthEnabled>
              <KeyStore>ref://myKeyStore2Way</KeyStore>
              <KeyAlias>keyAlias</KeyAlias>
              <TrustStore>ref://myTrustStore2Way</TrustStore>
              <IgnoreValidationErrors>false</IgnoreValidationErrors>
            </SSLInfo>
          </VirtualHost>' \
        -u orgAdminEmail:pWord
  6. Contatta l'assistenza Apigee per riavviare gli edge router e completare la procedura.