TLS für API BaaS konfigurieren

Edge for Private Cloud Version 4.17.09

TLS (Transport Layer Security, dessen Vorgänger SSL) ist die standardmäßige Sicherheitstechnologie für sicheres, verschlüsseltes Messaging in Ihrer gesamten API-Umgebung. Sie können TLS konfigurieren auf API-BaaS-Portal- und API-BaaS-Stack-Knoten.

Die folgende Abbildung zeigt ein typisches Bereitstellungsdiagramm für API BaaS mit einem einzelnen BaaS-Portal und drei API-BaaS-Stack-Knoten.

Entwickler verwenden einen Browser, um Anfragen an das Portal zu senden. Standardmäßig verwenden die Anfragen das HTTP- Protokoll an Port 9000 des Portalknotens an.

Diese Bereitstellung umfasst einen Load-Balancer zwischen den Portal- und Stack-Knoten. In dieser sendet das Portal HTTP-Anfragen an den Load-Balancer. leitet die Anfragen an einen der Stackknoten weiter. Dies ist die empfohlene Bereitstellung für ein Produktionssystem.

TLS-Konfigurationsoptionen

Beim Konfigurieren von TLS für API BaaS haben Sie mehrere Möglichkeiten:

  • Konfigurieren Sie TLS auf dem Portal und auf dem Load-Balancer für die Stackknoten

    Bei dieser Konfiguration verwenden Entwickler das HTTPS-Protokoll, um auf das Portal und das Portal zuzugreifen. im Browser ausgeführt wird, HTTPS für Anfragen an die Stack-Knoten über die aus. Der Load-Balancer verwendet HTTP, um auf die Stackknoten zuzugreifen.
  • Konfigurieren Sie TLS auf den Portal-, Load-Balancer- und Stack-Knoten

    Konfigurieren Sie den Load-Balancer für den Zugriff auf die Stackknoten mithilfe von TLS, um die Sicherheit zu erhöhen.
  • Konfigurieren Sie TLS im Portal und auf einem einzelnen Stackknoten

    In einer kleinen Umgebung, z. B. in einer Test- oder Entwicklungsumgebung, einen einzelnen Stack-Knoten. Es ist also kein Load-Balancer erforderlich. Bei dieser Konfiguration TLS sowohl auf Portal- als auch auf Stackknoten konfigurieren.
  • Konfigurieren Sie TLS auf einem Load-Balancer für das Portal

    Eine der oben nicht gezeigten Optionen besteht darin, einen Load-Balancer vor dem Portalknoten zu verwenden. Dabei können Sie TLS auf dem Load-Balancer und optional auf der Verbindung zwischen dem Load-Balancer und dem Portal herstellen.

Achten Sie darauf, dass der TLS-Port geöffnet ist

Mit den folgenden Verfahren wird TLS für den standardmäßigen Portalport 9000 und den Stackknoten 8080 konfiguriert. Sie können diesen Port jedoch bei Bedarf ändern.

Unabhängig von dem verwendeten Port muss der Port auf dem Knoten geöffnet sein. Für Sie können beispielsweise den folgenden Befehl verwenden, um Port 8443 zu öffnen:

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose
<ph type="x-smartling-placeholder">

TLS im API-BaaS-Stack konfigurieren

Standardmäßig ist TLS für den API-BaaS-Stack deaktiviert. Sie greifen dann über HTTP auf die BaaS API zu, indem Sie Verwenden Sie dazu die IP-Adresse oder den DNS-Namen des Stackknotens und Port 8080. Beispiel:

http://stack_IP:8080

Alternativ können Sie den TLS-Zugriff auf die BaaS API konfigurieren, sodass Sie darauf in der Formular:

https://stack_IP:8080

In diesem Beispiel konfigurieren Sie den TLS-Zugriff für die Verwendung von Port 8080. Port 8080 ist jedoch nicht erforderlich. – Sie können den Stack so konfigurieren, dass ein anderer Port verwendet wird. Die einzige Voraussetzung ist, dass Ihre Firewall lässt Traffic über den angegebenen Port zu.

Der Stack unterstützt nur einen Anfragetyp (HTTP oder HTTPS) über einen einzelnen Port. Dementsprechend wird Wenn Sie den HTTPS-Zugriff auf Port 8080 konfigurieren, können Sie nicht über HTTP auf Port 8080 zugreifen. Wenn Sie den Stack für die Verwendung von Port 8443 mit HTTPS konfigurieren, dann überwacht der Stack den Port nicht mehr. 8080.

So konfigurieren Sie den TLS-Zugriff auf den Stack:

  1. Generieren Sie die JKS-Datei des Schlüsselspeichers, die Ihre TLS-Zertifizierung und Ihren privaten Schlüssel enthält. Weitere Informationen Siehe Konfigurieren von TLS/SSL für Edge On Gebäude.
    Hinweis: Achten Sie darauf, dass das Passwort für den Schlüsselspeicher und für den Schlüssel identisch ist.
  2. Kopieren Sie die JKS-Datei des Schlüsselspeichers in ein Verzeichnis auf dem Stackknoten, z. B. /opt/apigee/customer/application. Das Verzeichnis muss für den Apigee zugänglich sein Nutzer.
  3. Ändern Sie die Eigentümerschaft der JKS-Datei in „apigee“ Nutzer:
    &gt; chown apigee:apigee /opt/apigee/customer/application/keystore.jks

    wobei keystore.jks der Name ist, Ihrer Schlüsselspeicherdatei.
  4. Bearbeiten Sie die Datei /opt/apigee/customer/application/usergrid.properties. -Datei, um die folgenden Eigenschaften festzulegen, einschließlich des Pfades zur JKS-Datei und des Passworts für Schlüsselspeicher und Schlüssel. Sollte die Datei nicht vorhanden sein, erstellen Sie sie:
    tomcat-server_scheme=https
    tomcat-server_secure=true
    tomcat-server_ssl.enabled=true
    tomcat-server_keystore.type=JKS
    tomcat-server_keystore.file=/opt/apigee/customer/application/keystore.jks
    tomcat-server_keystore.password=password
    tomcat-server_keyalias=keystore_alias
    tomcat-server_clientauth.enabled=false
    tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
    # Standardmäßig wird für den TLS-Zugriff Port 8080 verwendet.
    # Verwenden Sie diese Eigenschaft, um einen anderen Port anzugeben.
    # tomcat-server_port=8080


    Achtung: Der Wert für password muss in Klartext sein. Daher sollten Sie usergrid.properties vor unberechtigten Zugriffen schützen. Zugriff haben.

    Verwenden Sie das Schlüsselalias tomcat-server_keyalias. zum Angeben des Schlüsselspeicher-Alias. Sie haben den Schlüsselalias beim Erstellen des Schlüssels festgelegt. Sie können ihn beispielsweise mit der Option -alias im Befehl keytool festlegen.

    Verwenden Sie tomcat-server_ssl.protocols. um die vom Stack unterstützten TLS-Protokolle festzulegen. Eine Liste der von Java 8 unterstützten Protokolle Weitere Informationen finden Sie unter http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename.
  5. Konfigurieren Sie den Stackknoten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  6. BaaS-Stack neu starten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid Neustart
  7. Prüfen Sie, ob TLS funktioniert, indem Sie den folgenden cURL-Befehl auf dem Stackknoten mit HTTPS:
    &gt; curl -k https://localhost:8080/status -v

    Wenn TLS richtig konfiguriert ist, sollten Sie eine Antwort mit Statusinformationen sehen.

    Wenn Sie den TLS-Zugriff über einen anderen Port als 8080 konfiguriert haben, ändern Sie den obigen Befehl so, dass die Methode richtigen Port.
  8. Wiederholen Sie diese Schritte für alle Stackknoten.
  9. Wenn vor den Stack-Knoten ein Load-Balancer vorhanden ist, konfigurieren Sie den Load-Balancer, um Anfragen über HTTPS an die Stackknoten zu senden. Weitere Informationen finden Sie in der Dokumentation auf Ihrem Load Balancer.

    Wenn das Portal direkte Anfragen an den Stack stellt, konfigurieren Sie das Portal so, wie im folgenden Abschnitt beschrieben, um über HTTPS auf den Stack zuzugreifen.
  10. Verwenden Sie das Verfahren unten unter „API-BaaS-Stack-Knoten für TLS auf dem Stack oder Portal konfigurieren“ damit der Stackknoten beim Generieren von Nutzern Antworten.

Wird konfiguriert das Portal, um über TLS auf den Stack zuzugreifen

Das in einem Browser ausgeführte BaaS-Portal funktioniert durch API-Aufrufe an den BaaS-Stack. Wenn Sie Konfigurieren Sie den BaaS-Stack für die Verwendung von TLS. Anschließend müssen Sie auch das Portal für diese Aufrufe konfigurieren. über HTTPS.

Eine API-BaaS-Installation ist in der Regel so konfiguriert:

  • Load-Balancer zwischen Portal- und Stack-Knoten verwenden

    Konfigurieren Sie den Load-Balancer so, dass Anfragen über HTTPS an die Stackknoten gesendet werden. Weitere Informationen finden Sie in der finden Sie in der Dokumentation zu Ihrem Load-Balancer.

    In dieser Konfiguration kann das Portal über HTTP oder HTTPS auf den Load-Balancer zugreifen, je nachdem, wie Sie den Load-Balancer konfigurieren. Wenn der Load-Balancer TLS verwendet, gehen Sie wie unten beschrieben vor, Konfigurieren Sie das Portal so, dass Anfragen an den Load-Balancer von HTTPS gesendet werden.
  • Das Portal direkte Anfragen an den Stack richten

    Konfigurieren Sie das Portal für den Zugriff auf den Stack über HTTPS wie unten beschrieben.

So konfigurieren Sie das API BaaS-Portal für API-Aufrufe über HTTPS:

  1. Konfigurieren Sie den TLS-Zugriff auf dem BaaS-Stack wie oben beschrieben oder auf dem Load-Balancer für den Stapelknoten wie in der Dokumentation zu Ihrem Load-Balancer beschrieben.
  2. /opt/apigee/customer/application/portal.properties bearbeiten um die folgende Eigenschaft festzulegen. Sollte die Datei nicht vorhanden sein, erstellen Sie sie:
    baas.portal.config.overrideUrl=https://stackIP:port

    Geben Sie als Wert für diese Eigenschaft die IP-Adresse oder den DNS-Namen und den Port des API-Stack-Knotens an. für eine Installation mit einem Knoten oder für den Load-Balancer, wenn Sie vor dem der API-BaaS-Stack-Knoten.
  3. Konfigurieren Sie den Portalknoten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-portal konfigurieren
  4. Starte das Portal mit dem folgenden Befehl neu:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart
  5. Wenn Sie beim Konfigurieren des TLS-Zugriffs auf den Stack ein selbst signiertes Zertifikat verwendet haben angezeigt wird, lässt Ihr Browser möglicherweise keine Anfragen an den Stack vom Portal zu. Wenn Sie Im Browser wird ein Fehler angezeigt, dass der HTTPS-Zugriff auf den Stack nicht zulässig ist. Fordern Sie Folgendes an: URL in Ihrem Browser. Fügen Sie eine Sicherheitsausnahme hinzu, um den Zugriff zu erlauben:
    https://stackIP:port/status

    Geben Sie die IP-Adresse oder den DNS-Namen und den Port des API-Stack-Knotens oder Load-Balancers an.

TLS im API BaaS-Portal konfigurieren

Standardmäßig greifen die Nutzer auf das Portal zu, indem sie unverschlüsselte HTTP-Anfragen über Port 9000 auf der Portalserver Sie können das Portal für die Verwendung von HTTPS konfigurieren, um die Daten zu verschlüsseln, die an und vom

Standardmäßig greifen Sie über HTTP auf das Portal zu, indem Sie die IP-Adresse oder den DNS-Namen des Portals verwenden Knoten und Port 9000. Beispiel:

http://portal_IP:9000

Alternativ können Sie den TLS-Zugriff auf das Portal konfigurieren, sodass Sie darauf in der Formular:

https://portal_IP:9443

In diesem Beispiel konfigurieren Sie den TLS-Zugriff für die Verwendung von Port 9443. Port 9443 ist jedoch nicht erforderlich. : Du kannst das Portal so konfigurieren, dass ein anderer Port verwendet wird.

Das Portal unterstützt nur einen Anfragetyp (HTTP oder HTTPS) über einen einzelnen Port. Dementsprechend wird Wenn Sie den HTTPS-Zugriff auf Port 9000 konfigurieren, können Sie nicht über HTTP auf Port 9000 zugreifen. Wenn Sie konfigurieren Sie das Portal so, dass Port 9443 mit HTTPS verwendet wird, dann überwacht das Portal Port 9443 nicht mehr. 9.000.

So konfigurieren Sie TLS für das Portal:

  1. Erstellen Sie eine Schlüsseldatei und eine Zertifikatsdatei im PEM-Format.
    Hinweis: Der Schlüssel oder das Zertifikat darf kein Passwort bzw. keine Passphrase enthalten.
  2. Kopieren Sie die PEM-Dateien in ein Verzeichnis auf dem Portalknoten, z. B. /opt/apigee/customer/application. Das Verzeichnis muss für den Apigee zugänglich sein Nutzer.
  3. Ändern Sie die Eigentümerschaft der PEM-Dateien in „Apigee“. Nutzer:
    &gt; chown apigee:apigee /opt/apigee/customer/application/*.PEM
  4. Bearbeiten Sie die Datei /opt/apigee/customer/application/portal.properties. -Datei, um die folgenden Eigenschaften festzulegen. Sollte die Datei nicht vorhanden sein, erstellen Sie sie:
    baas.portal.ssl=on
    baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
    baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
    baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
    # Standardmäßig wird für den TLS-Zugriff Port 9000 verwendet.
    # Verwenden Sie diese Eigenschaft, um einen anderen Port anzugeben.
    # baas.portal.listen=9000


    Verwenden Sie baas.portal.ssl.protocols. , um die vom Portal unterstützten TLS-Protokolle festzulegen. Eine Liste der unterstützten Protokolle finden Sie in der Liste der von Nginx definierten SSL-Protokollnamen: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols.
  5. Konfigurieren Sie den Portalknoten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-portal konfigurieren
  6. Starte das Portal neu:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart
  7. Verwenden Sie das Verfahren unten unter „API-BaaS-Stack-Knoten für TLS auf dem Stack oder Portal konfigurieren“ um sicherzustellen, dass der Stackknoten die richtige TLS-URL für das Portal hat.

Konfigurieren Sie API-BaaS-Knoten für TLS auf der Stack oder Portal

Wenn Sie vor den Stack- oder Portalknoten einen Load-Balancer einfügen oder TLS aktivieren direkt im Portal- oder Stack-Knoten befinden, müssen Sie die Knoten mit den richtigen URLs konfigurieren, Zugriff auf den Stack und das Portal. Stackknoten benötigen diese Informationen beispielsweise in folgenden Fällen:

  • Einfügen einer URL in Antworten in BaaS API-Anfragen.
  • Links in E-Mail-Vorlagen hinzufügen, wenn Sie ein Passwort zurücksetzen oder andere Benachrichtigungen.
  • Weiterleitung von Nutzern zu bestimmten Portalseiten

Wenn Sie einen Load-Balancer vor den Stackknoten verwenden oder TLS auf dem Stackknoten konfigurieren, legen Sie die folgende Eigenschaft in /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

Ersetzen Sie http://localhost:8080 durch die URL des Ladevorgangs. aus. Wenn der Load-Balancer für die Verwendung von TLS konfiguriert ist, verwenden Sie das HTTPS-Protokoll. Nur für Sie müssen Sie den Port angeben, wenn Sie einen nicht standardmäßigen Port verwenden, d. h. ein anderer Port. 80 für HTTP und Port 443 für HTTPS.

Außerdem müssen Sie die folgende Eigenschaft in /opt/apigee/customer/application/portal.properties festlegen, wenn verwenden Sie einen Load-Balancer vor den Stack-Knoten:

baas.portal.config.overrideUrl=http://localhost:8080

Ersetzen Sie http://localhost:8080 durch die URL des Load Balancer für den Stack.

Wenn Sie einen Load-Balancer vor dem Portalknoten verwenden oder TLS auf dem Stackknoten konfigurieren, legen Sie die folgenden Properties in usergrid.properties:

usergrid-deployment_portal.url=http://localhost:9000

Ersetzen Sie http://localhost:9000 durch die URL des Load-Balancer. Wenn der Load-Balancer für die Verwendung von TLS konfiguriert ist, verwenden Sie das HTTPS-Protokoll. Ich Sie müssen den Port nur angeben, wenn Sie einen nicht standardmäßigen Port verwenden, d. h. einen anderen Port 80 für HTTP und Port 443 für HTTPS.

Nach der Bearbeitung von usergrid.properties:

  1. Konfigurieren Sie den Stackknoten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. BaaS-Stack neu starten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid Neustart
  3. Wenn Sie portal.properties geändert haben, konfigurieren Sie Folgendes: dem Portalknoten:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. BaaS-Portal neu starten:
    &gt; /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart