Configurazione degli host virtuali per il cloud

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

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

Scopri di più:

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 hanno l'autorizzazione per 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 a 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 host virtuali.
Ruolo utente amministratore dell'organizzazione Solo un amministratore dell'organizzazione può creare un host virtuale oppure un utente con un ruolo personalizzato che dispone delle 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 e degli ambienti utilizza due host virtuali: uno per 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 di base per l'host virtuale, nella UI o con l'API, devi specificare il protocollo (ovvero "http://" o "https://") come parte 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 avere un certificato firmato da un'entità attendibile, come Symantec o VeriSign. Non puoi utilizzare un certificato autofirmato.

Se hai bisogno dell'accesso 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.

Tutte le app richiedono il supporto SNI.

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 oppure 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 il nome 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 originariamente SSL, il tag utilizzato per configurare TLS è denominato <SSLInfo>.

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

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

Quando configuri un host virtuale per supportare TLS, specifichi 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 l'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 attendibilità contiene l'emittente del certificato del client e la catena di CA del certificato, requisito necessario. Il client deve inoltre essere configurato correttamente per il 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 attendibilità contiene l'emittente del certificato del client e la catena di CA del certificato, requisito necessario.

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 di 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 dover prima creare un keystore.

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

Se esegui TLS a due vie, devi comunque impostare l'elemento <ClientAuthEnabled> su true e specificare un archivio attendibilità utilizzando un riferimento con l'elemento <TrustStore> come descritto sopra in Definizione di un host virtuale per TLS a due vie.

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 a due vie, 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>

Nella UI di Edge, seleziona l'opzione Utilizza il certificato di prova senza costi integrato quando crei l'host virtuale per utilizzare il certificato e la chiave 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 visibile al 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 il nome dell'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ù sulla creazione e sulla modifica dei riferimenti, consulta Utilizzo dei 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 la pagina Configurazione di 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 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 cambiare <KeyStore> o <TrustStore> per utilizzare un riferimento diverso, oppure 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 l'archivio chiavi o l'archivio chiavi 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 paganti possono utilizzare l'API Update a Virtual Host 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 durante la creazione di 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 Update a Virtual Host. 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 meno recenti su Apigee Edge potrebbero non essere configurati per l'utilizzo dei riferimenti per archivi chiavi e archivi attendibili. In questo caso, puoi aggiornare l'host virtuale per utilizzare 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 lo indichi.
  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.