Optionen für die TLS-Konfiguration

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

Dieses Dokument enthält eine Übersicht zur Konfiguration von TLS in Edge für zwei Funktionsbereiche:

  1. Zugriff auf Ihre API-Proxys von API-Clients. Konfigurieren Sie TLS mithilfe von virtuellen Hosts auf dem Edge Router.
  2. Zugriff auf Ihre Back-End-Dienste über Edge. Konfigurieren Sie TLS mithilfe von Zielendpunkten und Ziel servern im Edge Message Processor.

Beide Zugriffstypen werden unten dargestellt:

TLS-Optionen auf einem virtuellen Host oder Zielendpunkt/Zielserver festlegen

Ein virtueller Host kann durch ein XML-Objekt in folgendem Format dargestellt werden:

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Der Bereich des virtuellen Hosts, den Sie zum Konfigurieren von TLS ändern, wird durch das <SSLInfo> Tag definiert. Sie verwenden dasselbe Tag <SSLInfo>, um einen Zielendpunkt oder Zielserver zu konfigurieren.

In folgender Tabelle werden die TLS-Konfigurationselemente beschrieben, die vom <SSLInfo>-Tag verwendet werden:

Element Beschreibung
<Enabled>

Aktiviert eine einseitige TLS-Verbindung zwischen Edge und dem API-Client oder zwischen Edge und dem Ziel Back-End.

Für einen virtuellen Host müssen Sie einen Schlüsselspeicher definieren, der Zertifikat und privaten Schlüssel enthält.

<ClientAuthEnabled>

Aktiviert die bidirektionale TLS zwischen Edge und dem API-Client oder zwischen Edge und dem Ziel Back-End.

Für die Aktivierung der bidirektionalen TLS müssen Sie normalerweise einen Truststore auf Edge einrichten.

<KeyStore> Der Schlüsselspeicher.
<KeyAlias> Der Alias, der beim Hochladen eines Zertifikats und eines privaten Schlüssels in den Schlüsselspeicher angegeben wurde.
<TrustStore> Der Truststore.
<IgnoreValidationErrors>

Falls wahr, ignoriert Edge TLS-Zertifikatsfehler. Gültig beim Konfigurieren der TLS für Zielserver und Zielendpunkte und beim Konfigurieren von virtuellen Hosts, die bidirektionale TLS verwenden. Der Standardwert ist "false".

Wird das Back-End-System zusammen mit einem Zielendpunkt/Zielserver verwendet, kann, wenn das Back-End-System SNI nutzt und ein Zertifikat mit einem Subjekt-DN (Subject Distinguished Name) zurückgibt, der nicht mit dem Hostnamen übereinstimmt, der Fehler nicht ignoriert werden und die Verbindung schlägt fehl.

<CommonName>

Wenn angegeben, ein Wert, mit dem der allgemeine Name des Zielzertifikats validiert wird. Dieser Wert ist nur für TargetEndpoint- und TargetServer-Konfigurationen gültig. Er ist nicht für VirtualHost-Konfigurationen gültig.

Standardmäßig wird der angegebene Wert genau mit dem allgemeinen Namen des Zielzertifikats verglichen. Wenn Sie beispielsweise *.myhost.com als Wert für <CommonName> verwenden, wird der Zielhostname nur abgeglichen und validiert, wenn der genaue Wert *.myhost.com als allgemeiner Name im Zielzertifikat angegeben ist.

Optional kann Apigee den Abgleich mit Platzhaltern mithilfe des Attributs wildcardMatch durchführen.

Ein allgemeiner Name, der in einem Zielzertifikat als abc.myhost.com angegeben ist, wird abgeglichen und validiert wenn das Element <CommonName> wie folgt angegeben ist:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

Informationen zum Festlegen der <KeyStore> und <TrustStore> Elemente

Im Beispiel für einen virtuellen Host oben werden Keystore und Truststore durch Verweise im folgenden Format angegeben:

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee empfiehlt dringend, dass Sie Verweise auf Schlüsselspeicher und Truststore verwenden. Ein Verweis ist eine Variable, die den Namen des Schlüsselspeichers oder Truststore enthält, statt den Namen des Schlüsselspeichers direkt anzugeben. In diesem Beispiel:

  • myKeystoreRef ist eine Referenz, die den Namen des Schlüsselspeichers enthält. In diesem Beispiel lautet der Name des Schlüsselspeichers myKeystore.
  • myTruststoreRef ist eine Referenz, die den Namen des Truststore enthält. In diesem Beispiel lautet der Name des Truststore myTruststore.

Läuft ein Zertifikat ab, müssen Sie den virtuellen Host oder Zielendpunkt/Zielserver aktualisieren, um den Keystore oder Truststore mit dem neuen Zertifikat anzugeben. Der Vorteil eines Verweises besteht darin, dass Sie den Wert des Verweises ändern können, um den Schlüsselspeicher oder Truststore zu ändern, ohne den virtuellen Host oder Zielendpunkt/Zielserver selbst ändern zu müssen:

  • Für Cloud-Kunden: Sie müssen sich nicht an den Apigee Edge-Support wenden, um den Wert des Verweises zu ändern.
  • Für Private Cloud-Kunden: Sie müssen keine Edge-Komponenten wie Router und Message Processors neu starten, um den Wert des Verweises zu ändern.

Alternativ können Sie den Schlüsselspeicher- und den Truststore-Namen direkt angeben:

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

Wenn Sie den Namen des Schlüsselspeichers oder Truststore direkt angeben, müssen sich Cloud-Kunden an den Apigee Edge-Support wenden und Private Cloud-Kunden bestimmte Edge-Komponenten neu starten, um das Zertifikat zu aktualisieren.

Eine dritte Option ist nur für Zielendpunkte/Zielserver die Verwendung von Flussvariablen:

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

Ablaufvariablen funktionieren für Zielendpunkte/Zielserver, mit denen Sie den Schlüsselspeicher oder Truststore wie Verweise aktualisieren können. Sie funktionieren jedoch nicht mit virtuellen Hosts. Sie müssen bei jeder Anfrage Informationen zum Schlüsselspeicher, Alias und Truststore senden.

Einschränkungen bei der Verwendung von Verweisen auf Schlüsselspeicher und Truststore

Zahlende Cloud-Kunden und alle Private Cloud-Kunden, die TLS konfigurieren, müssen folgende Beschränkung berücksichtigen, wenn sie Verweise auf Schlüsselspeicher und Truststores verwenden:

  • Sie können Schlüsselspeicher- und Truststore-Verweise nur auf virtuellen Hosts verwenden, wenn Sie die TLS für die Apigee-Router beenden.
  • Wenn Sie einen Load-Balancer vor den Apigee-Routern haben und die TLS auf dem Load-Balancer beenden, können Sie keine Schlüsselspeicher- und Truststore-Verweise in virtuellen Hosts verwenden.

Wenn Ihr bestehender virtueller Host einen Schlüsselspeicher oder Truststore-Literal verwendet

Vorhandene virtuelle Hosts in Edge sind möglicherweise nicht für die Verwendung von Verweisen auf Schlüsselspeicher und Truststores konfiguriert. In diesem Fall können Sie den virtuellen Host so aktualisieren, dass er Verweise verwendet.

  1. Edge for the Cloud

    Um den virtuellen Host auf die Verwendung von Verweisen auf den Schlüsselspeicher umzustellen, müssen Sie mit dem Apigee Edge-Support zusammenarbeiten.

  2. Edge for Private Cloud

    So stellen Sie den virtuellen Host auf die Verwendung von Verweisen um:

    1. Aktualisieren Sie den virtuellen Host, um Verweise zu verwenden.
    2. Starten Sie die Router neu.
    Weitere Informationen finden Sie unter "Virtuellen Host für die Verwendung von Verweisen auf den Schlüsselspeicher und Truststore ändern" in TLS-Zugriff auf eine API für die Private Cloud konfigurieren.

Verwendung des Apigee Freetrial-Zertifikats und -Schlüssels

Wenn Sie ein kostenpflichtiges Edge for Cloud-Konto haben und noch kein TLS-Zertifikat und -Schlüssel haben, können Sie einen virtuellen Host erstellen, der das Apigee Freetrial-Zertifikat und den Schlüssel verwendet. Das bedeutet, dass Sie den virtuellen Host erstellen können, ohne zuvor einen Schlüsselspeicher zu erstellen.

Ein XML-Objekt, das den virtuellen Host mit dem Apigee Freetrial-Zertifikat und dem entsprechenden Schlüssel definiert, übergeht die <KeyStore> und <KeyAlias> Elemente und ersetzt sie durch das <UseBuiltInFreeTrialCert> Element, wie unten dargestellt:

<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>

Wenn Sie die bidirektionale TLS nutzen, müssen Sie das <ClientAuthEnabled> Element dennoch auf true festlegen und einen Truststore angeben. Nutzen Sie dazu einen Verweis mit dem <TrustStore> Element.

Weitere Informationen finden Sie unter Virtuelle Hosts für die Cloud konfigurieren.

Informationen zur TLS-Konfiguration

Zwei Hauptfaktoren bestimmen, wie Sie die TLS-Konfiguration durchführen:

  • Sind Sie Edge Cloud- oder Private Cloud-Kunde?
  • Wie möchten Sie abgelaufene oder bald ablaufende Zertifikate aktualisieren?

Optionen bei der Konfiguration von Clouds und Privaten Clouds Optionen

Die folgende Tabelle zeigt die verschiedenen Konfigurationsoptionen für Cloud- und Private Cloud Kunden:

Private Cloud Cloud
Virtueller Host Volle Kontrolle Die vollständige Kontrolle ist nur für kostenpflichtige Konten verfügbar
Zielendpunkt/Zielserver Volle Kontrolle Volle Kontrolle

Private Cloud-Kunden haben die vollständige Kontrolle über die Konfiguration von virtuellen Hosts und Zielendpunkten/Zielservern. Diese Kontrolle umfasst die Möglichkeit, virtuelle Hosts zu erstellen und zu löschen sowie alle Attribute für einen virtuellen Host festzulegen.

Alle Cloud-Kunden, sowohl zahlende als auch solche in der Probephase, haben die vollständige Kontrolle über die Konfiguration der Zielendpunkte/Zielserver. Darüber hinaus haben zahlende Cloud-Kunden die vollständige Kontrolle über virtuelle Hosts, einschließlich der TLS-Attribute.

Umgang mit abgelaufenen Zertifikaten

Wenn ein TLS-Zertifikat abläuft oder Ihre Systemkonfiguration so geändert wird, dass das Zertifikat nicht mehr gültig ist, muss das Zertifikat aktualisiert werden. Wenn Sie die TLS für einen virtuellen Host oder Zielendpunkt/Zielserver konfigurieren, sollten Sie vor der Konfiguration festlegen, wie Sie dieses Update durchführen.

Vorgehensweise bei abgelaufenem Zertifikat

In Edge werden Zertifikate an einem von zwei Orten gespeichert:

  • Schlüsselspeicher : Enthält das TLS-Zertifikat und den privaten Schlüssel, um die Entität während des TLS-Handshakes zu identifizieren.
  • Truststore: Enthält vertrauenswürdige Zertifikate auf einem TLS-Client, mit denen das dem Client dargestellte Zertifikat eines TLS-Servers validiert wird. Diese Zertifikate sind normalerweise selbstsignierte Zertifikate, von einer vertrauenswürdigen Zertifizierungsstelle signierte Zertifikate oder Zertifikate, die im Rahmen von bidirektionaler TLS-Authentifizierung verwendet werden.

Wenn ein Zertifikat in einem Schlüsselspeicher abläuft und Sie einen Verweis auf den Schlüsselspeicher verwenden, können Sie kein neues Zertifikat in den Schlüsselspeicher hochladen. Gehen Sie stattdessen so vor:

  1. Erstellen Sie einen neuen Schlüsselspeicher.
  2. Laden Sie ein neues Zertifikat mit demselben Aliasnamen wie dem des alten Schlüsselspeichers in den neuen Schlüsselspeicher hoch.
  3. Aktualisieren Sie den Verweis in Ihrem virtuellen Host oder Zielserver/Zielendpunkt, um den neuen Truststore zu verwenden.

Wenn ein Zertifikat in einem Truststore abläuft und Sie einen Verweis auf den Truststore verwenden:

  1. Erstellen Sie einen neuen Truststore.
  2. Laden Sie das neue Zertifikat in den neuen Truststore hoch. Der Aliasname spielt für Truststores keine Rolle. Hinweis: Wenn ein Zertifikat Teil einer Kette ist, müssen Sie entweder eine einzelne Datei mit allen Zertifikaten erstellen und diese Datei in einen einzelnen Alias hochladen oder alle Zertifikate in der Kette separat mit dem Truststore verknüpft werden.
  3. Aktualisieren Sie den Verweis in Ihrem virtuellen Host oder Zielserver/Zielendpunkt, um den neuen Truststore zu verwenden.

Zusammenfassung der Methoden zum Aktualisieren eines abgelaufenen Zertifikats

Die Methode, die Sie zur Angabe des Namens des Schlüsselspeichers oder des Truststores auf dem virtuellen Host oder Zielendpunkt/Zielserver nutzen, richtet sich nach der verwendeten Methode. Sie können Folgendes angeben:

  • Verweise
  • Direkte Namen
  • Ablaufvariablen

Jede dieser Methoden hat unterschiedliche Auswirkungen auf den Aktualisierungsprozess, wie in der folgenden Tabelle beschrieben. Wie Sie sehen, bieten Verweise sowohl für Cloud- als auch für Private Cloud-Kunden die größte Flexibilität:

Konfigurationstyp Zertifikat aktualisieren/ersetzen Private Cloud Cloud
Referenz (empfohlen) Erstellen Sie für einen Schlüsselspeicher einen neuen Schlüsselspeicher mit einem neuen Namen und einem Alias mit demselben Namen wie dem des alten Alias.

Erstellen Sie bei einem Truststore einen Truststore mit einem neuen Namen.

Aktualisieren Sie den Verweis auf den Schlüsselspeicher oder Truststore.

Ein Neustart des Routers oder Message Processor ist nicht erforderlich.

Aktualisieren Sie den Verweis auf den Schlüsselspeicher oder Truststore.

Sie müssen den Apigee-Support nicht kontaktieren.

Ablaufvariablen (nur Zielendpunkt) Erstellen Sie für einen Schlüsselspeicher einen neuen Schlüsselspeicher mit einem neuen Namen und einem Alias mit demselben oder einem neuen Namen.

Erstellen Sie bei einem Truststore einen Truststore mit einem neuen Namen.

Übergeben Sie bei jeder Anfrage die aktualisierte Ablaufvariable mit dem Namen des neuen Schlüsselspeichers, dem Alias oder des Truststore.

Ein Neustart des Routers oder Message Processor ist nicht erforderlich.

Übergeben Sie bei jeder Anfrage die aktualisierte Ablaufvariable mit dem Namen des neuen Schlüsselspeichers, dem Alias oder des Truststore.

Sie müssen den Apigee-Support nicht kontaktieren.

Direkt Erstellen Sie einen neuen Schlüsselspeicher, einen Alias oder einen Truststore. Aktualisieren Sie den virtuellen Host und starten Sie die Router neu.

Wenn der Truststore von einem Zielendpunkt/Zielserver verwendet wird, stellen Sie den Proxy neu bereit.

Wenden Sie sich bei virtuellen Hosts an den Apigee Edge-Support, um die Router neu zu starten.

Wenn der Truststore von einem Zielendpunkt/Zielserver verwendet wird, stellen Sie den Proxy neu bereit.

Direkt Löschen Sie den Schlüsselspeicher oder Truststore und erstellen Sie ihn noch einmal mit demselben Namen. Der virtuelle Host muss nicht aktualisiert werden, ein Neustart des Routers ist nicht erforderlich. Allerdings schlagen API-Anfragen fehl bis der neue Schlüsselspeicher und der neue Alias festgelegt sind.

Wenn der Schlüsselspeicher für das bidirektionale TLS zwischen Edge und dem Backend-Dienst verwendet wird, starten Sie die Message Processors neu.

Der virtuelle Host muss nicht aktualisiert werden. Allerdings schlagen API-Anfragen fehl, bis der neue Schlüsselspeicher und Alias festgelegt sind.

Wenn der Schlüsselspeicher für das bidirektionale TLS zwischen Edge und dem Backend-Dienst verwendet wird, wenden Sie sich an den Apigee Edge-Support , um die Message Processors neu zu starten.

Direkt Laden Sie nur für Truststores ein neues Zertifikat in den Truststore hoch. Wenn der Truststore von einem virtuellen Host verwendet wird, starten Sie die Router neu.

Wenn der Truststore von einem Zielendpunkt/Zielserver verwendet wird, starten Sie die Message Processors neu.

Wenden Sie sich bei virtuellen Hosts an den Apigee Edge-Support, um die Edge-Router neu zu starten.

Wenn der Truststore von einem Zielendpunkt/Zielserver verwendet wird, wenden Sie sich an den Apigee Edge-Support , um die Message Processors neu zu starten.