TLS von Edge zum Back-End konfigurieren (Cloud und private Cloud)

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Ein API-Proxy fungiert als Zuordnung eines öffentlich verfügbaren Endpunkts zu Ihrem Back-End-Dienst. Ein virtueller Host definiert, wie der öffentliche API-Proxy einer Anwendung zugänglich gemacht wird. Für Beispiel: Der virtuelle Host bestimmt, ob über TLS auf den API-Proxy zugegriffen werden kann. Wenn Sie API-Proxy konfigurieren, bearbeiten Sie seine ProxyEndpoint-Definition, um die virtuellen Hosts zu konfigurieren, verwendet werden.

Der TargetEndpoint ist das ausgehende Äquivalent des ProxyEndpoint. TargetEndpoint-Funktionen als HTTP-Client von Edge zu einem Back-End-Dienst. Beim Erstellen eines API-Proxys können Sie Folgendes konfigurieren: um null oder mehr TargetEndpunkte zu verwenden.

Weitere Informationen:

Die Konfiguration eines TargetEndpoint oder TargetServer

Um einen TargetEndpoint zu konfigurieren, bearbeiten Sie das XML-Objekt, das den TargetEndpoint definiert. Sie können bearbeiten Sie den TargetEndpoint, indem Sie die XML-Datei bearbeiten, die den TargetEndpoint in Ihrem API-Proxy oder bearbeiten Sie ihn in der Edge-Verwaltungsbenutzeroberfläche.

So verwenden Sie die Edge-Verwaltungsbenutzeroberfläche zum Bearbeiten des TargetEndpoint:

  1. Melden Sie sich bei der Edge-Management-Benutzeroberfläche unter https://enterprise.apigee.com an.
  2. Wählen Sie den Namen des zu aktualisierenden API-Proxys aus.
  3. Wählen Sie den Tab Develop aus.
  4. Wählen Sie unter Zielendpunkte die Option default aus.
  5. Im Codebereich wird die TargetEndpoint-Definition ähnlich wie unten angezeigt:
    <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. Konfigurieren Sie einen Truststore wie unten beschrieben unter TLS-Konfiguration mit dem Back-End
  7. Nehmen Sie die gewünschten Änderungen vor und speichern Sie den Proxy. Wenn der API-Proxy bereitgestellt wurde, speichern Sie ihn. noch einmal mit der neuen Einstellung.

Beachten Sie, dass die TargetEndpoint-Definition das Attribut name enthält. Sie verwenden den Wert von das Attribut name um die ProxyEndpoint-Definition eines API-Proxys für die Verwendung der TargetEndpoint. Weitere Informationen finden Sie in der Referenz zur API-Proxy-Konfiguration.

TargetEndpunkte können so konfiguriert werden, dass es auf einen Zielserver anstatt auf den expliziten Server verweist. Ziel-URL Eine Zielserver-Konfiguration entkoppelt konkrete Endpunkt-URLs von TargetEndpoint-Konfigurationen. Zielserver werden zur Unterstützung von Load-Balancing und Failover verwendet auf mehreren Backend-Serverinstanzen.

Unten sehen Sie ein Beispiel für eine TargetServer-Definition:

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

Auf einen TargetServer wird durch den Namen in der <HTTPTargetConnection> verwiesen. in einer TargetEndpoint-Definition. Sie können einen oder mehrere benannte Zielserver konfigurieren, wie unten gezeigt.

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

Siehe Load-Balancing auf den Backend-Servern.

TLS-Konfiguration mit dem Backend

Bevor Sie den TLS-Zugriff auf das Back-End konfigurieren, sollten Sie zwei wichtige Punkte:

  1. Standardmäßig validiert Edge das Back-End-Zertifikat nicht. Zum Konfigurieren müssen Sie einen Truststore erstellen Edge zum Validieren des Zertifikats.
  2. Verwenden Sie einen Verweis, um den von Edge verwendeten Schlüsselspeicher oder Truststore anzugeben.

Beide Überlegungen werden im Folgenden beschrieben.

Truststore zum Aktivieren der Zertifikatsprüfung definieren

Wenn Sie eine TLS-Anfrage über einen TargetEndpoint oder TargetServer stellen, tut Edge nicht wird standardmäßig das vom Back-End-Server empfangene TLS-Zertifikat validiert. Das bedeutet, dass Edge Folgendes nicht überprüft:

  • Das Zertifikat wurde von einer vertrauenswürdigen Zertifizierungsstelle signiert.
  • Das Zertifikat ist noch nicht abgelaufen.
  • Das Zertifikat weist einen allgemeinen Namen auf. Wenn es einen gemeinsamen Namen gibt, validiert Edge nicht dass der allgemeine Name mit dem in der URL angegebenen Hostnamen übereinstimmt.

Um Edge für die Validierung des Back-End-Zertifikats zu konfigurieren, müssen Sie:

  1. Erstellen Sie einen Truststore in Edge.
  2. Laden Sie das Zertifikat oder die Zertifikatkette des Servers in den Truststore hoch. Falls das Serverzertifikat von einem Drittanbieter signiert ist, müssen Sie das vollständige Zertifikatskette, einschließlich des Root-CA-Zertifikats, zum Truststore. Es gibt keine implizit vertrauenswürdigen Zertifizierungsstellen.
  3. Fügen Sie den Truststore der TargetEndpoint- oder TargetServer-Definition hinzu.

Weitere Informationen finden Sie unter Schlüsselspeicher und Truststores.

Beispiel:

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

Referenz verwenden in einen Schlüsselspeicher oder Truststore,

Im Beispiel unten sehen Sie, wie ein TargetEndpoint oder TargetServer für die TLS unterstützt. Beim Konfigurieren von TLS geben Sie einen Truststore und einen Schlüsselspeicher als Teil eines TargetEndpoint- oder TargetServer-Definition.

Apigee empfiehlt dringend, einen Verweis auf den Schlüsselspeicher zu verwenden und Truststore in der TargetEndpunkte- oder TargetServer-Definition. Die Vorteile einer Referenz dass Sie den Verweis nur so aktualisieren müssen, dass er auf einen anderen Schlüsselspeicher oder Truststore verweist, Aktualisieren Sie das TLS-Zertifikat.

Verweise auf Schlüsselspeicher und Truststores in funktioniert die TargetEndpoint- bzw. TargetServer-Definition genauso wie die Definition für virtuelle Hosts.

TargetEndpoint oder TargetServer zur Verwendung einer Referenz konvertieren

Möglicherweise haben Sie TargetEndpoint- oder TargetServer-Definitionen, die verwendet den literalen Namen von Keystore und Truststore. So konvertieren Sie den TargetEndpoint oder TargetServer-Definition für die Verwendung von Referenzen:

  1. Aktualisieren Sie die TargetEndpoint- oder TargetServer-Definition, um einen Verweis zu verwenden.
  2. Starten Sie die Edge Message Processors neu: <ph type="x-smartling-placeholder">
      </ph>
    • Kunden von Public Cloud wenden sich an den Apigee Edge-Support, um die Message Processors neu zu starten.
    • Für Private Cloud-Kunden: Starten Sie den Edge Message Processor neu. auf einmal ansehen.
  3. Prüfen Sie, ob Ihr TargetEndpoint oder TargetServer ordnungsgemäß funktioniert.

Einweg-TLS zum Back-End konfigurieren Server

Wenn Sie eine TargetEndpoint-Definition verwenden, konfigurieren Sie den Einweg-TLS-Zugriff über Edge (TLS-Client) zum Backend-Server (TLS-Server) erfordert keine zusätzliche Konfiguration in Edge. Es ist bis zum Back-End-Server, um TLS korrekt zu konfigurieren.

Sie müssen nur darauf achten, dass das <URL>-Element im Die TargetEndpoint-Definition verweist über das HTTPS-Protokoll auf den Back-End-Dienst und dass Sie Aktivieren Sie TLS:

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

Wenn Sie den Backend-Dienst mit einem TargetServer definieren, aktivieren Sie TLS. in der TargetServer-Definition:

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

Wenn Sie jedoch möchten, dass Edge das Back-End-Zertifikat validiert, müssen Sie einen Truststore erstellen der das Back-End-Zertifikat oder die Zertifikatkette enthält. Anschließend geben Sie den Truststore in der TargetEndpoint-Definition:

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

Oder in der TargetServer-Definition:

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

So konfigurieren Sie One-Way-TLS:

  1. Wenn Sie das Back-End-Zertifikat validieren möchten, erstellen Sie einen Truststore in Edge und laden Sie Back-End-Zertifikat oder Zertifizierungsstellenkette, wie in Schlüsselspeicher und Truststores. Wenn Sie in diesem Beispiel einen Truststore erstellen müssen, nennen Sie ihn myTrustStore verwenden.
  2. Wenn Sie einen Truststore erstellt haben, verwenden Sie den folgenden POST API-Aufruf zum Erstellen eines Die Referenz mit dem Namen myTrustStoreRef auf den von Ihnen erstellten Truststore oben:

    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. Verwenden Sie die Edge-Verwaltungsbenutzeroberfläche, um die TargetEndpoint-Definition für den API-Proxy zu aktualisieren (oder Wenn Sie den API-Proxy in XML definieren, bearbeiten Sie die XML-Dateien für den Proxy: <ph type="x-smartling-placeholder">
      </ph>
    1. Melden Sie sich bei der Edge-Verwaltungsbenutzeroberfläche unter https://enterprise.apigee.com an.
    2. Wählen Sie im Menü der Edge-Verwaltungsbenutzeroberfläche die Option APIs aus.
    3. Wählen Sie den Namen des zu aktualisierenden API-Proxys aus.
    4. Wählen Sie den Tab Entwicklung aus.
    5. Wählen Sie unter Zielendpunkte die Option default aus.
    6. Bearbeiten Sie im Codebereich das Element <HTTPTargetConnection> wie folgt: Fügen Sie das Element <SSLInfo> hinzu. Geben Sie die richtige Truststore-Referenz an und setzen Sie <Enabled> auf „true“:
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. Speichern Sie den API-Proxy. Wenn der API-Proxy bereitgestellt wurde, wird er beim Speichern erneut mit dem neuen Einstellung.

Zwei-Wege-TLS-Verbindung zum Back-End konfigurieren Server

Wenn Sie Zwei-Wege-TLS zwischen Edge (TLS-Client) und dem Backend-Server (TLS) unterstützen möchten Server):

  • Erstellen Sie einen Schlüsselspeicher in Edge und laden Sie das Edge-Zertifikat und den privaten Schlüssel hoch.
  • Wenn Sie das Back-End-Zertifikat validieren möchten, erstellen Sie einen Truststore auf Edge, der die Zertifikat- und Zertifizierungsstellenkette, die Sie vom Back-End-Server erhalten haben.
  • Aktualisieren Sie den TargetEndpoint aller API-Proxys, die zur Konfiguration auf den Backend-Server verweisen. TLS-Zugriff.

Schlüsselalias zum Angeben des Schlüsselspeicherzertifikats verwenden

Sie können im selben Schlüsselspeicher mehrere Zertifikate mit jeweils eigenem Alias definieren. Standardmäßig verwendet Edge das erste im Schlüsselspeicher definierte Zertifikat.

Optional können Sie Edge so konfigurieren, dass das von der Eigenschaft <KeyAlias> angegebene Zertifikat verwendet wird. So können Sie einen Schlüsselspeicher für mehrere Zertifikate definieren wählen Sie diejenige aus, die Sie in der TargetServer-Definition verwenden möchten. Wenn Edge ein Zertifikat mit einem Alias nicht finden kann die mit <KeyAlias> übereinstimmt, wird die Standardaktion verwendet, nämlich das Auswählen des das erste Zertifikat im Schlüsselspeicher.

Nutzer von Edge für Public Cloud müssen sich an den Apigee Edge-Support wenden, um diese Funktion zu aktivieren.

Zwei-Wege-TLS konfigurieren

So konfigurieren Sie Zwei-Wege-TLS:

  1. Erstellen Sie den Schlüsselspeicher in Edge und laden Sie das Zertifikat und den privaten Schlüssel mithilfe des Verfahrens hoch hier beschrieben: Schlüsselspeicher und Truststores. Erstellen Sie für dieses Beispiel einen Schlüsselspeicher namens myTestKeystore, der einen Schlüsselspeicher Aliasname myKey für das Zertifikat und den privaten Schlüssel.
  2. Verwende den folgenden POST API-Aufruf, um die Referenz zu erstellen. mit dem Namen myKeyStoreRef in den Schlüsselspeicher, den Sie oben erstellt haben:

    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
    

    Die Referenz gibt den Namen des Schlüsselspeichers und den Referenztyp als KeyStore an.

    Verwenden Sie den folgenden GET API-Aufruf, um die Referenz aufzurufen:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. Wenn Sie das Back-End-Zertifikat validieren möchten, erstellen Sie einen Truststore auf Edge und laden Sie das Zertifikat und die Zertifizierungsstelle hoch. wie hier beschrieben: Schlüsselspeicher und Truststores. Wenn Sie einen Truststore erstellen, heißt es in diesem Beispiel myTrustStore.
  4. Wenn Sie einen Truststore erstellt haben, verwenden Sie den folgenden POST API-Aufruf zum Erstellen eines Die Referenz mit dem Namen myTrustStoreRef auf den von Ihnen erstellten Truststore oben:

    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. Verwenden Sie die Edge-Verwaltungsbenutzeroberfläche, um die TargetEndpoint-Definition für den API-Proxy zu aktualisieren (oder Wenn Sie den API-Proxy in XML definieren, bearbeiten Sie die XML-Dateien für den Proxy: <ph type="x-smartling-placeholder">
      </ph>
    1. Melden Sie sich bei der Edge-Management-Benutzeroberfläche unter https://enterprise.apigee.com an.
    2. Wählen Sie im Menü der Edge-Verwaltungsbenutzeroberfläche die Option APIs aus.
    3. Wählen Sie den Namen des zu aktualisierenden API-Proxys aus.
    4. Wählen Sie den Tab Entwicklung aus.
    5. Wählen Sie unter Zielendpunkte die Option default aus.
    6. Bearbeiten Sie im Codebereich das Element <HTTPTargetConnection> wie folgt: <SSLInfo> hinzufügen -Elements. Achten Sie darauf, den richtigen Schlüsselspeicher und Schlüsselalias anzugeben und sowohl den <Enabled>- und <ClientAuthEnabled>-Elemente auf „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. Speichern Sie den API-Proxy. Wenn der API-Proxy bereitgestellt wurde, wird er beim Speichern erneut mit dem neuen Einstellung.

Weitere Informationen zu den in <TargetEndpoint> verfügbaren Optionen, einschließlich der Verwendung von Variablen Informationen zur Angabe der <SSLInfo>-Werte für TargetEndpoint finden Sie unter API-Proxy-Konfigurationsreferenz.

SNI aktivieren

Edge unterstützt die Verwendung von Server Name Indication (SNI) von Message Processor für das Targeting Endpunkte in Apigee Edge für Cloud- und Private Cloud-Bereitstellungen.

Um für Edge für die Private Cloud abwärtskompatibel mit Ihren vorhandenen Ziel-Back-Ends zu sein, Apigee hat SNI standardmäßig deaktiviert. Wenn Ihr Ziel-Back-End für SNI konfiguriert ist, können Sie diese Funktion aktivieren. Weitere Informationen finden Sie unter SNI mit Edge verwenden.