Configurazione di TLS da Edge al backend (Cloud e cloud privato)

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Un proxy API funziona come mappatura di un endpoint disponibile pubblicamente al servizio di backend. Un host virtuale definisce la modalità di esposizione del proxy API rivolto al pubblico a un'app. Per Ad esempio, l'host virtuale determina se è possibile accedere al proxy API utilizzando TLS. Quando configurare un proxy API, modificarne la definizione ProxyEndpoint per configurare gli host virtuali utilizzi.

TargetEndpoint è l'equivalente in uscita di ProxyEndpoint. A funzioni TargetEndpoint come client HTTP da Edge a un servizio di backend. Quando crei un proxy API, puoi configurare per utilizzare zero o più TargetEndpoint.

Scopri di più:

Configurazione di un TargetEndpoint TargetServer

Per configurare un TargetEndpoint, modifica l'oggetto XML che definisce il TargetEndpoint. Puoi modificare TargetEndpoint modificando il file XML che definisce il TargetEndpoint nella proxy API o modificalo nell'interfaccia utente di gestione perimetrale.

Per utilizzare l'interfaccia utente di gestione perimetrale per modificare TargetEndpoint:

  1. Accedi alla UI di gestione Edge all'indirizzo https://enterprise.apigee.com.
  2. Seleziona il nome del proxy API da aggiornare.
  3. Seleziona la scheda Sviluppo.
  4. In Endpoint di destinazione seleziona valore predefinito.
  5. Nell'area del codice viene visualizzata la definizione di TargetEndpoint, simile a quella riportata di seguito:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. Configurare un archivio attendibilità come descritto di seguito in Informazioni sulla configurazione TLS con il backend.
  7. Apporta le modifiche e salva il proxy. Se è stato eseguito il deployment del proxy API, ne esegue il deployment con la nuova impostazione.

Tieni presente che la definizione di TargetEndpoint contiene una proprietà name. Devi utilizzare il valore la proprietà name per configurare la definizione di ProxyEndpoint di un proxy API per l'utilizzo Endpoint di destinazione. Per saperne di più, consulta Informazioni di riferimento sulla configurazione dei proxy API.

TargetEndpoint può essere configurato per fare riferimento a un TargetServer, anziché al modello URL di destinazione. Una configurazione TargetServer disaccoppia URL di endpoint concreti Configurazioni di endpoint di destinazione. I TargetServer vengono utilizzati per supportare bilanciamento del carico e failover in più istanze del server di backend.

Di seguito è riportata una definizione di esempio di TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

In <HTTPTargetConnection> viene fatto riferimento a un TargetServer tramite il nome in una definizione di TargetEndpoint. Puoi configurare uno o più TargetServer denominati, come mostrato di seguito.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

Consulta Bilanciamento del carico tra i server di backend.

Informazioni sulla configurazione TLS con il backend

Prima di configurare l'accesso TLS al backend, è necessario comprendere due importanti punti:

  1. Per impostazione predefinita, Edge non convalida il certificato di backend. Devi creare un archivio attendibilità per configurare Edge per convalidare il certificato.
  2. Utilizza un riferimento per specificare l'archivio chiavi o l'archivio di attendibilità utilizzato da Edge.

Entrambe le considerazioni sono descritte di seguito.

Definizione di un archivio attendibilità per abilitare la convalida dei certificati

Quando si effettua una richiesta TLS tramite TargetEndpoint o TargetServer, Edge non per impostazione predefinita convalida il certificato TLS ricevuto dal server di backend. Ciò significa che Edge non verifica che:

  • Il certificato è stato firmato da una CA attendibile.
  • Il certificato non è scaduto.
  • Il certificato presenta un nome comune. Se esiste un nome comune, Edge non convalida che il nome comune corrisponda al nome host specificato nell'URL.

Per configurare Edge per la convalida del certificato di backend, devi:

  1. Creare un archivio attendibilità su Edge.
  2. Carica la catena di certificati o certificati del server nel truststore. Se il certificato del server è firmato da una terza parte, devi caricare una catena di certificati completa, incluso il certificato CA radice, al truststore. Non esistono CA implicitamente attendibili.
  3. Aggiungere l'archivio di attendibilità alla definizione di TargetEndpoint o TargetServer.
di Gemini Advanced.

Per ulteriori informazioni, consulta Archivia chiavi e archivi attendibili.

Ad esempio:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Utilizzo di un riferimento a un archivio chiavi o un archivio attendibili

L'esempio seguente mostra come configurare un TargetEndpoint o TargetServer per e supportare TLS. Nell'ambito della configurazione di TLS, specifichi un archivio attendibilità e un archivio chiavi come parte di un Definizione di TargetEndpoint o TargetServer.

Apigee consiglia vivamente di utilizzare un riferimento all'archivio chiavi e truststore nella definizione di TargetEndpoints o TargetServer. Il vantaggio di usare un riferimento è che è sufficiente aggiornare il riferimento per puntare a un altro archivio chiavi o archivio attendibilità aggiornare il certificato TLS.

Riferimenti ad archivi chiavi e archivi attendibili in la definizione di TargetEndpoint o TargetServer funziona allo stesso modo per gli host virtuali.

Conversione di un TargetEndpoint o TargetServer per l'utilizzo di un riferimento

Potrebbero esistere definizioni di TargetEndpoint o TargetServer esistenti utilizza il nome letterale dell'archivio chiavi e dell'archivio chiavi. a convertire il TargetEndpoint o la definizione di TargetServer per utilizzare i riferimenti:

  1. Aggiorna la definizione TargetEndpoint o TargetServer per utilizzare un riferimento.
  2. Riavvia i processori di messaggi Edge:
    • Per i clienti Cloud Public, contatta l'assistenza Apigee Edge per riavviare i processori di messaggi.
    • Per i clienti del cloud privato, riavvia il processore di messaggi Edge alla volta.
  3. Verifica che TargetEndpoint o TargetServer funzioni correttamente.

Configurazione di TLS unidirezionale al backend server

Quando si utilizza una definizione di TargetEndpoint, si configura l'accesso TLS unidirezionale da Edge (client TLS) al server di backend (server TLS) non richiede alcuna configurazione aggiuntiva su Edge. È al server di backend per configurare TLS correttamente.

Devi solo assicurarti che l'elemento <URL> nella La definizione di TargetEndpoint fa riferimento al servizio di backend tramite il protocollo HTTPS e che tu abilita TLS:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Se utilizzi un TargetServer per definire il servizio di backend, abilita TLS nella definizione di TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

Tuttavia, se vuoi che Edge convalidi il certificato di backend, devi creare un archivio attendibilità che contiene il certificato o la catena di certificati di backend. Quindi specifichi l'archivio di attendibilità in la definizione di TargetEndpoint:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Oppure nella definizione di TargetServer:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

Per configurare il protocollo TLS unidirezionale:

  1. Se vuoi convalidare il certificato di backend, crea un truststore su Edge e caricalo il certificato di backend o la catena CA, come descritto in archivi chiavi e archivi attendibili. Per questo esempio, se devi creare un archivio attendibilità, assegnargli un nome myTrustStore
  2. Se hai creato un archivio attendibilità, utilizza la seguente chiamata API POST per creare il riferimento denominato myTrustStoreRef al truststore che hai creato sopra:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. Usa l'interfaccia utente di gestione perimetrale per aggiornare la definizione di TargetEndpoint per il proxy API (oppure se definisci il proxy API in XML, modifica i file XML per il proxy):
    1. Accedi alla UI di gestione Edge all'indirizzo https://enterprise.apigee.com.
    2. Nel menu dell'interfaccia utente di gestione perimetrale, seleziona API.
    3. Seleziona il nome del proxy API da aggiornare.
    4. Seleziona la scheda Sviluppo.
    5. In Endpoint di destinazione seleziona valore predefinito.
    6. Nell'area del codice, modifica l'elemento <HTTPTargetConnection> in aggiungi l'elemento <SSLInfo>. Assicurati di specificare il riferimento dell'archivio attendibilità corretto e di impostare <Enabled> su true:
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. Salva il proxy API. Se è stato eseguito il deployment del proxy API, viene eseguito nuovamente il deployment con nuova impostazione.

Configurazione di TLS a due vie verso il backend server

Se vuoi supportare il protocollo TLS bidirezionale tra Edge (client TLS) e il server di backend (TLS) server):

  • Creare un archivio chiavi su Edge e caricare il certificato Edge e la chiave privata.
  • Se vuoi convalidare il certificato di backend, crea un archivio attendibilità su Edge che contenga e la catena CA ricevuta dal server di backend.
  • Aggiorna il TargetEndpoint di tutti i proxy API che fanno riferimento al server di backend per configurare Accesso TLS.
di Gemini Advanced.

Utilizzo dell'alias della chiave per specificare il certificato dell'archivio chiavi

Nello stesso archivio chiavi puoi definire più certificati, ognuno con il proprio alias. Per impostazione predefinita, Edge utilizza il primo certificato definito nell'archivio chiavi.

Facoltativamente, puoi configurare Edge in modo che utilizzi il certificato specificato dalla proprietà <KeyAlias>. Ciò ti consente di definire un unico archivio chiavi per più certificati, quindi seleziona quello da utilizzare nella definizione di TargetServer. Se Edge non riesce a trovare un certificato con un alias che corrisponde a <KeyAlias>, utilizza l'azione predefinita di selezionare il primo certificato nell'archivio chiavi.

Gli utenti di Edge for Public Cloud devono contattare l'assistenza Apigee Edge per abilitare questa funzionalità.

Configurazione di TLS bidirezionale

Per configurare il protocollo TLS bidirezionale:

  1. Crea l'archivio chiavi su Edge e carica il certificato e la chiave privata utilizzando la procedura riportata di seguito. descritto qui: Keystores e Truststore. Per questo esempio, crea un archivio chiavi denominato myTestKeystore che utilizza un oggetto nome alias di myKey per il certificato e la chiave privata.
  2. Utilizza la seguente chiamata API POST per creare il riferimento denominato myKeyStoreRef all'archivio chiavi creato in precedenza:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    Il riferimento specifica il nome dell'archivio chiavi e il tipo di riferimento come KeyStore.

    Utilizza la seguente chiamata API GET per visualizzare il riferimento:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. Se vuoi convalidare il certificato di backend, crea un truststore su Edge e carica il certificato e l'autorità di certificazione come descritto qui: Keystores e Truststore. Per questo esempio, se devi creare un truststore con il nome myTrustStore.
  4. Se hai creato un archivio attendibilità, utilizza la seguente chiamata API POST per creare il riferimento denominato myTrustStoreRef al truststore che hai creato sopra:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. Usa l'interfaccia utente di gestione perimetrale per aggiornare la definizione di TargetEndpoint per il proxy API (oppure se definisci il proxy API in XML, modifica i file XML per il proxy):
    1. Accedi alla UI di gestione Edge all'indirizzo https://enterprise.apigee.com.
    2. Nel menu dell'interfaccia utente di gestione perimetrale, seleziona API.
    3. Seleziona il nome del proxy API da aggiornare.
    4. Seleziona la scheda Sviluppo.
    5. In Endpoint di destinazione seleziona valore predefinito.
    6. Nell'area del codice, modifica l'elemento <HTTPTargetConnection> in aggiungi <SSLInfo> . Assicurati di specificare l'archivio chiavi e l'alias della chiave corretti e di impostare entrambi Gli elementi <Enabled> e <ClientAuthEnabled> su true:
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. Salva il proxy API. Se è stato eseguito il deployment del proxy API, viene eseguito nuovamente il deployment con nuova impostazione.

Per ulteriori informazioni sulle opzioni disponibili in <TargetEndpoint>, incluso l'uso delle variabili per fornire i valori <SSLInfo> di TargetEndpoint, consulta Riferimento alla configurazione del proxy API.

Attivazione di SNI in corso...

Edge supporta l'utilizzo di Server Name Indication (SNI) dai processori di messaggi per la destinazione in Apigee Edge per il cloud e per i deployment nel cloud privato.

Per Edge per il cloud privato, affinché sia compatibile con le versioni precedenti dei backend di destinazione esistenti, Apigee ha disabilitato SNI per impostazione predefinita. Se il backend di destinazione è configurato per supportare SNI, puoi abilitare questa funzione. Per ulteriori informazioni, consulta la sezione Utilizzo di SNI con Edge.