Edge for Private Cloud Version 4.17.05
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
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:
- 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. - 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.
- Ändern Sie die Eigentümerschaft der JKS-Datei in „apigee“ Nutzer:
> chown apigee:apigee /opt/apigee/customer/application/keystore.jks
wobei keystore.jks der Name ist, Ihrer Schlüsselspeicherdatei. - 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. - Konfigurieren Sie den Stackknoten:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - BaaS-Stack neu starten:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid Neustart - Prüfen Sie, ob TLS funktioniert, indem Sie den folgenden cURL-Befehl auf dem Stackknoten mit
HTTPS:
> 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. - Wiederholen Sie diese Schritte für alle Stackknoten.
- 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. - 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:
- 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.
- /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. - Konfigurieren Sie den Portalknoten:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal konfigurieren - Starte das Portal mit dem folgenden Befehl neu:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart - 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:
- 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. - 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.
- Ändern Sie die Eigentümerschaft der PEM-Dateien in „Apigee“. Nutzer:
> chown apigee:apigee /opt/apigee/customer/application/*.PEM - 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. - Konfigurieren Sie den Portalknoten:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal konfigurieren - Starte das Portal neu:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart - 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:
- Konfigurieren Sie den Stackknoten:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - BaaS-Stack neu starten:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid Neustart - Wenn Sie portal.properties geändert haben, konfigurieren Sie Folgendes:
dem Portalknoten:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - BaaS-Portal neu starten:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal neustart