TLS für die Verwaltungs-UI konfigurieren

Standardmäßig greifen Sie über HTTP auf die Edge-Benutzeroberfläche zu, indem Sie die IP-Adresse des Management Server-Knotens und Port 9000 verwenden. Beispiel:

http://ms_IP:9000

Alternativ können Sie den TLS-Zugriff auf die Edge-Benutzeroberfläche so konfigurieren, dass Sie auf sie 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 jedoch für Edge nicht erforderlich. Sie können den Verwaltungsserver so konfigurieren, dass andere Portwerte verwendet werden. Die einzige Voraussetzung ist, dass Ihre Firewall den Traffic über den angegebenen Port zulässt.

Prüfen, ob der TLS-Port geöffnet ist

Mit dem Verfahren in diesem Abschnitt wird TLS für die Verwendung von Port 9443 auf dem Verwaltungsserver konfiguriert. Unabhängig vom verwendeten Port muss er auf dem Verwaltungsserver geöffnet 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

So konfigurieren Sie den TLS-Zugriff auf die Verwaltungsoberfläche:

  1. Erstellen Sie die JKS-Datei des Schlüsselspeichers mit Ihrer TLS-Zertifizierung und Ihrem privaten Schlüssel und kopieren Sie sie auf den Knoten des Verwaltungsservers. Weitere Informationen finden Sie unter TLS/SSL für Edge On-Premises 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 auf Port 9000 zugänglich.
  5. Geben Sie den Schlüsselspeicheralgorithmus ein. Der Standardwert ist JKS.
  6. Geben Sie den absoluten Pfad zur JKS-Datei des Schlüsselspeichers ein.

    Das Script kopiert die Datei in das Verzeichnis /opt/apigee/customer/conf auf dem Management-Serverknoten und ändert die Inhaberschaft der Datei in „apigee“.

  7. Geben Sie das Klartextpasswort für den Schlüsselspeicher ein.
  8. Das Skript startet dann die Edge-Management-Benutzeroberfläche neu. Nach dem Neustart unterstützt die Verwaltungs-UI den Zugriff über TLS.

    Diese Einstellungen finden Sie unter /opt/apigee/etc/edge-ui.d/SSL.sh.

TLS mit einer Konfigurationsdatei konfigurieren

Alternativ zur oben beschriebenen Vorgehensweise können Sie dem Befehl in Schritt 2 der Anleitung eine Konfigurationsdatei übergeben. Sie müssen diese Methode verwenden, wenn Sie optionale TLS-Attribute festlegen möchten.

Wenn Sie eine Konfigurationsdatei verwenden möchten, erstellen Sie eine neue Datei und fügen Sie die folgenden Attribute hinzu:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Speichern Sie die Datei in einem lokalen Verzeichnis mit einem beliebigen Namen. Konfigurieren Sie dann TLS mit dem folgenden Befehl:

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

Dabei ist configFile der vollständige Pfad zur gespeicherten Datei.

PKCS12-Schlüsselspeicher für FIPS-fähige Betriebssysteme verwenden

Wenn Sie Edge for Private Cloud auf einem FIPS-kompatiblen Betriebssystem verwenden, sollten Sie einen PKCS12-Schlüsselspeicher verwenden. Sie können einen PKCS12-Schlüsselspeicher mithilfe standardmäßiger OpenSSL-Befehle generieren. Wenn Sie einen PKCS12-Schlüsselspeicher verwenden, legen Sie KEY_ALGO=PKCS12 in der Konfigurationsdatei fest.

Edge-Benutzeroberfläche konfigurieren, wenn TLS am Load Balancer beendet wird

Wenn Sie einen Load Balancer haben, der Anfragen an die Edge-Benutzeroberfläche weiterleitet, können Sie die TLS-Verbindung am Load Balancer beenden und dann Anfragen über HTTP an die Edge-Benutzeroberfläche weiterleiten. Diese Konfiguration wird unterstützt, Sie müssen jedoch den Load Balancer und die Edge-Benutzeroberfläche entsprechend konfigurieren.

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

Achten Sie bei der Konfiguration 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 das folgende Attribut in ui.properties 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-Konfigurationseigenschaften, 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 die folgende Konfigurationseigenschaft in der Konfigurationsdatei festlegen, wie unter TLS mit einer Konfigurationsdatei konfigurieren beschrieben:

TLS_CONFIGURE=y

In der folgenden Tabelle werden diese Attribute beschrieben:

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

Definiert die Liste der aktivierten Protokolle als kommagetrenntes Array. Beispiel:

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

Beachten Sie, dass Sie das Zeichen " mit Escapezeichen versehen müssen.

Standardmäßig sind alle Protokolle aktiviert.

TLS_DISABLED_ALGO

Hiermit werden die deaktivierten Chiffren-Suites definiert. Außerdem kann damit verhindert werden, dass kleine Schlüsselgrößen für den 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, wie hier beschrieben. Leerzeichen müssen jedoch mit einem Escape-Zeichen versehen werden, wenn Sie TLS_DISABLED_ALGO festlegen:

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

TLS_ENABLED_CIPHERS

Definiert die Liste der verfügbaren TLS-Chiffren als kommagetrenntes Array. Beispiel:

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

Das Anführungszeichen muss maskiert werden.

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

Wenn Sie TLS-Protokolle deaktivieren möchten, bearbeiten Sie die Konfigurationsdatei wie unter TLS mit einer Konfigurationsdatei konfigurieren beschrieben:

  1. Öffnen Sie die Konfigurationsdatei in einem Editor.
  2. Wenn Sie ein einzelnes TLS-Protokoll deaktivieren möchten, z. B. TLSv1.0, 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 in 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 secure-Flags zum Set-Cookie-Header 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. Wenn das nicht der Fall ist, kann das Cookie über jeden 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 hacken. 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 in der Datei ui.properties die Eigenschaft conf_application_session.secure auf true fest, wie im folgenden Beispiel gezeigt:
    conf_application_session.secure=true
  3. Speichern Sie die Änderungen.
  4. Starten Sie die Edge-Benutzeroberfläche mit dem Dienstprogramm apigee-serice neu, wie im folgenden Beispiel gezeigt:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Prüfen Sie mit einem Dienstprogramm wie curl die Antwortheader in der Edge-Benutzeroberfläche, um zu bestätigen, 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 von 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