TLS für die Verwaltungs-UI konfigurieren

Edge for Private Cloud Version 4.19.01

Standardmäßig greifen Sie über HTTP mit der IP-Adresse des Management Server-Knotens und Port 9000 auf die Edge-Management-UI zu. Beispiel:

http://ms_IP:9000

Alternativ können Sie den TLS-Zugriff auf die Verwaltungs-UI so konfigurieren, dass Sie folgendermaßen darauf zugreifen können:

https://ms_IP:9443

In diesem Beispiel konfigurieren Sie den TLS-Zugriff für die Verwendung von Port 9443. Diese Portnummer ist für Edge jedoch nicht erforderlich – Sie können den Management Server so konfigurieren, dass andere Portwerte verwendet werden. Die einzige Voraussetzung besteht darin, dass Ihre Firewall Traffic über den angegebenen Port zulässt.

Achten Sie darauf, dass Ihr TLS-Port offen ist

Mit der Anleitung in diesem Abschnitt wird TLS für die Verwendung von Port 9443 auf dem Verwaltungsserver konfiguriert. Unabhängig vom verwendeten Port muss der Port auf dem Verwaltungsserver offen sein. Sie können sie beispielsweise mit dem folgenden Befehl öffnen:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

TLS konfigurieren

Gehen Sie so vor, um den TLS-Zugriff auf die Verwaltungs-UI zu konfigurieren:

  1. Generieren Sie die Schlüsselspeicher-JKS-Datei mit Ihrer TLS-Zertifizierung und Ihrem privaten Schlüssel und kopieren Sie sie in den Knoten des Verwaltungsservers. Weitere Informationen finden Sie unter TLS/SSL für lokale Edge-Geräte konfigurieren.
  2. Führen Sie den folgenden Befehl aus, um TLS zu konfigurieren:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Geben Sie die HTTPS-Portnummer ein, z. B. 9443.
  4. Geben Sie an, ob Sie den HTTP-Zugriff auf die Verwaltungsoberfläche deaktivieren möchten. Standardmäßig ist die Verwaltungs-UI über HTTP an Port 9000 zugänglich.
  5. Geben Sie den Schlüsselspeicher-Algorithmus ein. Der Standardwert ist JKS.
  6. Geben Sie den absoluten Pfad zur Keystore-JKS-Datei ein.

    Das Skript kopiert die Datei in das Verzeichnis /opt/apigee/customer/conf auf dem Management Server-Knoten und ändert die Eigentümerschaft der Datei in „apigee“.

  7. Geben Sie das Klartext-Keystore-Passwort ein.
  8. Das Skript startet dann die Edge-Verwaltungs-UI neu. Nach dem Neustart unterstützt die Verwaltungs-UI den Zugriff über TLS.

    Du kannst diese Einstellungen unter /opt/apigee/etc/edge-ui.d/SSL.sh einsehen.

TLS mit einer Konfigurationsdatei konfigurieren

Alternativ zum oben beschriebenen Verfahren können Sie eine Konfigurationsdatei an den Befehl in Schritt 2 des Verfahrens übergeben. Sie benötigen diese Methode, wenn Sie optionale TLS-Attribute festlegen möchten.

Um eine Konfigurationsdatei zu verwenden, erstellen Sie eine neue Datei und fügen Sie die folgenden Attribute hinzu:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Speichern Sie die Datei unter einem beliebigen Namen in einem lokalen Verzeichnis. Verwenden Sie dann den folgenden Befehl, um TLS zu konfigurieren:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

Dabei ist configFile der vollständige Pfad zu der von Ihnen gespeicherten Datei.

Konfigurieren Sie die Edge-UI, wenn TLS auf dem Load-Balancer beendet wird

Wenn Sie einen Load-Balancer haben, der Anfragen an die Edge-UI weiterleitet, können Sie die TLS-Verbindung auf dem Load-Balancer beenden und Anfragen dann über HTTP an die Edge-UI weiterleiten lassen. Diese Konfiguration wird unterstützt, aber Sie müssen den Load-Balancer und die Edge-UI entsprechend konfigurieren.

Die zusätzliche Konfiguration ist erforderlich, wenn die Edge-Benutzeroberfläche bei der Erstellung des Nutzers E-Mails zum Festlegen ihres Passworts sendet oder wenn der Nutzer das Zurücksetzen eines verlorenen Passworts anfordert. Diese E-Mail enthält eine URL, die der Nutzer zum Festlegen oder Zurücksetzen eines Passworts auswählt. Wenn die Edge-Benutzeroberfläche nicht für die Verwendung von TLS konfiguriert ist, verwendet die URL in der generierten E-Mail standardmäßig das HTTP-Protokoll und nicht HTTPS. Sie müssen den Load-Balancer und die Edge-UI so konfigurieren, dass eine E-Mail-Adresse generiert wird, die HTTPS verwendet.

Achten Sie beim Konfigurieren des Load-Balancers darauf, dass er den folgenden Header für Anfragen festlegt, die an die Edge-Benutzeroberfläche weitergeleitet werden:

X-Forwarded-Proto: https

So konfigurieren Sie die Edge-Benutzeroberfläche:

  1. Öffnen Sie die Datei /opt/apigee/customer/application/ui.properties in einem Editor. Wenn die Datei nicht vorhanden ist, erstellen Sie sie:
    vi /opt/apigee/customer/application/ui.properties
  2. Legen Sie in ui.properties die folgende Property fest:
    conf/application.conf+trustxforwarded=true
  3. Speichern Sie die Änderungen in ui.properties.
  4. Starten Sie die Edge-Benutzeroberfläche neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Optionale TLS-Attribute festlegen

Die Edge-Benutzeroberfläche unterstützt optionale TLS-Konfigurationsattribute, mit denen Sie Folgendes festlegen können:

  • Standard-TLS-Protokoll
  • Liste der unterstützten TLS-Protokolle
  • Unterstützte TLS-Algorithmen
  • Unterstützte TLS-Chiffren

Diese optionalen Parameter sind nur verfügbar, wenn Sie das folgende Konfigurationsattribut in einer Konfigurationsdatei festlegen, wie unter Konfigurationsdatei zum Konfigurieren von TLS verwenden beschrieben:

TLS_CONFIGURE=y

In der folgenden Tabelle werden diese Attribute beschrieben:

Property Beschreibung
TLS_PROTOCOL Definiert das Standard-TLS-Protokoll für die Edge-Benutzeroberfläche. Standardmäßig wird TLS 1.2 verwendet. Gültige Werte sind TLSv1.2, TLSv1.1 und TLSv1.
TLS_ENABLED_PROTOCOL

Definiert die Liste der aktivierten Protokolle als durch Kommas getrenntes Array. Beispiel:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Beachten Sie, dass Sie das Zeichen " maskieren müssen.

Standardmäßig sind alle Protokolle aktiviert.

TLS_DISABLED_ALGO

Definiert die deaktivierten Chiffresammlungen und kann auch verwendet werden, um zu verhindern, dass kleine Schlüsselgrößen für TLS-Handshake verwendet werden. Es gibt keinen Standardwert.

Die an TLS_DISABLED_ALGO übergebenen Werte entsprechen den zulässigen Werten für jdk.tls.disabledAlgorithms. Beim Festlegen von TLS_DISABLED_ALGO müssen Sie jedoch Leerzeichen mit einem Escapezeichen versehen:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

Definiert die Liste der verfügbaren TLS-Chiffren als durch Kommas getrenntes Array. Beispiel:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Beachten Sie, dass Sie das Zeichen " maskieren müssen.

Die Standardliste der aktivierten Chiffren ist:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Eine Liste der verfügbaren Chiffren finden Sie hier.

TLS-Protokolle deaktivieren

Zum Deaktivieren von TLS-Protokollen müssen Sie die unter Konfigurationsdatei zum Konfigurieren von TLS verwenden beschriebene Konfigurationsdatei so bearbeiten:

  1. Öffnen Sie die Konfigurationsdatei in einem Editor.
  2. Wenn Sie ein einzelnes TLS-Protokoll wie TLSv1.0 deaktivieren möchten, fügen Sie der Konfigurationsdatei Folgendes hinzu:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Wenn Sie mehrere Protokolle deaktivieren möchten, z. B. TLSv1.0 und TLSv1.1, fügen Sie der Konfigurationsdatei Folgendes hinzu:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Speichern Sie die Änderungen an der Konfigurationsdatei.
  4. Führen Sie den folgenden Befehl aus, um TLS zu konfigurieren:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    Dabei ist configFile der vollständige Pfad zur Konfigurationsdatei.

  5. Starten Sie die Edge-Benutzeroberfläche neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Sichere Cookies verwenden

Apigee Edge for Private Cloud unterstützt das Hinzufügen des Flags secure zum Header Set-Cookie für Antworten von der Edge-Benutzeroberfläche. Wenn dieses Flag vorhanden ist, kann das Cookie nur über TLS-fähige Kanäle gesendet werden. Ist das Cookie nicht vorhanden, kann es über jeden beliebigen Kanal gesendet werden, unabhängig davon, ob er sicher ist oder nicht.

Cookies ohne das Flag secure können einem Angreifer möglicherweise ermöglichen, das Cookie zu erfassen und wiederzuverwenden oder eine aktive Sitzung zu übernehmen. Daher empfiehlt es sich, diese Einstellung zu aktivieren.

So legen Sie das Flag secure für Edge-UI-Cookies fest:

  1. Öffnen Sie die folgende Datei in einem Texteditor:
    /opt/apigee/customer/application/ui.properties

    Wenn die Datei nicht vorhanden ist, erstellen Sie sie.

  2. Legen Sie das Attribut conf_application_session.secure in der Datei ui.properties wie im folgenden Beispiel auf true fest:
    conf_application_session.secure=true
  3. Speichern Sie die Änderungen.
  4. Starten Sie die Edge-Benutzeroberfläche mit dem Dienstprogramm apigee-serice wie im folgenden Beispiel neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Prüfen Sie die Antwortheader der Edge-Benutzeroberfläche mit einem Dienstprogramm wie curl, um sicherzustellen, dass die Änderung funktioniert. Beispiel:

curl -i -v https://edge_UI_URL

Der Header sollte eine Zeile wie die folgende enthalten:

Set-Cookie: secure; ...

Deaktivieren Sie TLS in der Edge-Benutzeroberfläche

Verwenden Sie den folgenden Befehl, um TLS in der Edge-Benutzeroberfläche zu deaktivieren:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl