Citrix ADC Ingress Controller

Ingress sichern

Das Thema behandelt die verschiedenen Möglichkeiten zum Sichern Ihres Ingress mit Citrix ADC und die vom Citrix Ingress Controller bereitgestellten Anmerkungen.

In der folgenden Tabelle sind die TLS-Anwendungsfälle mit Beispielanmerkungen aufgeführt, mit denen Sie Ihren Ingress mithilfe des Ingress Citrix ADC und dem Citrix Ingress Controller sichern können:

Anwendungsfälle Beispiel für Anmerkungen
TLSv1.3-Protokoll aktivieren ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'
Strikte HTTP-Transportsicherheit (HSTS) ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}
OCSP-Heftung ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'
Clientauthentifizierung auf obligatorisch setzen ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'
Erweiterung des TLS-Sitzungstickets ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'
Wiederverwendung von SSL ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'
Cipher-Gruppen ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "secure", "cipherpriority" :"21"}]}'
Chiffre-Umleitung ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'

TLSv1.3-Protokoll aktivieren

Mithilfe der Anmerkungen für SSL-Profile können Sie die Unterstützung des TLS 1.3-Protokolls im SSL-Profil aktivieren und die dheKeyExchangeWithPsk Parameter tls13SessionTicketsPerAuthContext und im SSL-Profil für den Ingress Citrix ADC festlegen.

Mit tls13SessionTicketsPerAuthContext diesem Parameter können Sie die Anzahl der Tickets festlegen, die Ingress Citrix ADC ausstellt, wenn TLS 1.3 ausgehandelt wird, die ticket-basierte Wiederaufnahme aktiviert ist und entweder ein Handshake abgeschlossen oder die Clientauthentifizierung nach dem Handshake abgeschlossen ist. Der Wert kann erhöht werden, damit Clients mehrere parallele Verbindungen mit einem neuen Ticket für jede Verbindung öffnen können. Der Mindestwert, den Sie festlegen können, ist 1 und der Höchstwert ist 10. Standardmäßig ist der Wert auf 1 festgelegt.

Hinweis:

Es werden keine Tickets gesendet, wenn die Wiederaufnahme deaktiviert ist.

Mit dheKeyExchangeWithPsk diesem Parameter können Sie angeben, ob der Ingress Citrix ADC requires a DHE Schlüsselaustausch stattfinden soll, wenn ein vorab freigegebener Schlüssel während eines Handshakes zur Wiederaufnahme einer TLS 1.3-Sitzung akzeptiert wird. Ein DHE-Schlüsselaustausch gewährleistet die Vorwärtsgeheimnis, auch wenn Ticketschlüssel kompromittiert sind, auf Kosten zusätzlicher Ressourcen, die für die Durchführung des DHE Schlüsselaustauschs erforderlich sind.

Im Folgenden finden Sie eine Beispielanmerkung für das HTTP-Profil, um die Unterstützung des TLS 1.3-Protokolls im SSL-Profil zu aktivieren tls13SessionTicketsPerAuthContext und die dheKeyExchangeWithPsk Parameter und im SSL-Profil festzulegen.

ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'

Strikte HTTP-Transportsicherheit (HSTS)

Die Ingress Citrix ADC Appliances unterstützen die strenge HTTP-Transportsicherheit (HSTS) als eingebaute Option in SSL-Profilen. Mit HSTS kann ein Server die Verwendung einer HTTPS-Verbindung für die gesamte Kommunikation mit einem Client erzwingen. Das heißt, auf die Site kann nur mit HTTPS zugegriffen werden. Für die A+-Zertifizierung von SSL Labs ist Unterstützung für HSTS erforderlich. Weitere Informationen finden Sie unter Citrix ADC-Unterstützung für HSTS.

Mithilfe der Anmerkungen für SSL-Profile können Sie HSTS in einem SSL-Front-End-Profil auf dem Ingress Citrix ADC aktivieren. Im Folgenden finden Sie ein Beispiel für eine Ingress-Anmerkung:

ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}'

Wobei:

  • HSTS - Der Status von HTTP Strict Transport Security (HSTS) im SSL-Profil. Mit HSTS kann ein Server die Verwendung einer HTTPS-Verbindung für die gesamte Kommunikation mit einem Client erzwingen. Die unterstützten Werte sind ENABLED und DISABLED. Standardmäßig ist der Wert auf DISABLED festgelegt.
  • maxage - Ermöglicht Ihnen, die maximale Zeit in Sekunden im strengen Transport Security (STS) -Header festzulegen, während der der Client nur HTTPS-Anforderungen an den Server senden darf. Die minimale Zeit, die Sie einstellen können, ist 0 und das Maximum ist 4294967294. Standardmäßig ist der Wert 0.
  • IncludeSubdomains - Ermöglicht Ihnen, HSTS für Subdomänen zu aktivieren. Wenn auf festgelegt Yes, muss ein Client nur HTTPS-Anforderungen für Subdomänen senden. Standardmäßig ist der Wert auf Nein festgelegt.

OCSP-Heftung

Der Ingress Citrix ADC kann den Sperrstatus eines Serverzertifikats zum Zeitpunkt des SSL-Handshakes an einen Client senden, nachdem der Zertifikatsstatus von einem OCSP-Responder überprüft wurde. Der Sperrstatus eines Serverzertifikats wird auf die Antwort “geheftet”, die die Appliance im Rahmen des SSL-Handshakes an den Client sendet. Weitere Informationen zur Citrix ADC-Implementierung von CRL- und OCSP-Berichten finden Sie unter OCSP-Heftung.

Um die OCSP-Heftfunktion zu verwenden, können Sie sie mithilfe eines SSL-Profils mit der folgenden Ingress-Annotation aktivieren:

ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'

Hinweis:

Um OCSP-Heftung zu verwenden, müssen Sie einen OCSP-Responder auf der Citrix ADC Appliance hinzufügen.

Clientauthentifizierung auf obligatorisch setzen

Mithilfe der Anmerkungen für SSL-Profile können Sie die Clientauthentifizierung aktivieren. Die Ingress Citrix ADC Appliance fragt während des SSL-Handshakes nach dem Clientzertifikat.

Die Appliance prüft das vom Client vorgelegte Zertifikat auf normale Einschränkungen wie die Signatur des Ausstellers und das Ablaufdatum.

Hier sind einige Anwendungsfälle:

  • Erfordert ein gültiges Clientzertifikat, bevor der Inhalt der Website angezeigt wird. Dies beschränkt den Inhalt der Website nur auf autorisierte Maschinen und Benutzer.

  • Fordern Sie ein gültiges Clientzertifikat an Wenn kein gültiges Clientzertifikat bereitgestellt wird, fordern Sie den Benutzer zur Multifaktor-Authentifizierung auf.

Die Clientauthentifizierung kann auf obligatorisch oder optional festgelegt werden.

  • Wenn es als obligatorisch festgelegt ist und der SSL-Client kein gültiges Clientzertifikat überträgt, wird die Verbindung getrennt. Gültig bedeutet: Von einer bestimmten Zertifizierungsstelle signiert/ausgestellt und nicht abgelaufen oder widerrufen.
  • Wenn dies optional ist, fordert der Citrix ADC das Clientzertifikat an, fährt jedoch mit der SSL-Transaktion fort, auch wenn der Client ein ungültiges Zertifikat oder kein Zertifikat vorlegt. Diese Konfiguration ist für Authentifizierungsszenarien nützlich (z. B. erfordern Sie eine Zwei-Faktor-Authentifizierung, wenn kein gültiges Clientzertifikat bereitgestellt wird)

Mithilfe der Anmerkungen für SSL-Profile können Sie die Clientauthentifizierung auf einem virtuellen SSL-Server aktivieren und die Clientauthentifizierung als festlegen Mandatory.

Im Folgenden finden Sie eine Beispielanmerkung des SSL-Profils:

ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'

Hinweis:

Stellen Sie sicher, dass Sie das Clientzertifikat an den virtuellen SSL-Server auf dem Ingress Citrix ADC binden.

Erweiterung des TLS-Sitzungstickets

Ein SSL-Handshake ist ein CPU-intensiver Vorgang. Wenn die Wiederverwendung von Sitzungen aktiviert ist, wird der Server- oder Clientschlüsselaustauschvorgang für vorhandene Clients übersprungen. Sie dürfen ihre Sitzung fortsetzen. Dies verbessert die Reaktionszeit und erhöht die Anzahl der SSL-Transaktionen pro Sekunde, die ein Server unterstützen kann. Der Server muss jedoch Details zu jedem Sitzungsstatus speichern, der Speicher verbraucht und nur schwer von mehreren Servern gemeinsam genutzt werden kann, wenn Anforderungen über Server verteilt werden.

Die Ingress Citrix ADC Appliances unterstützen die SessionTicket TLS-Erweiterung. Die Verwendung dieser Erweiterung zeigt an, dass die Sitzungsdetails auf dem Client und nicht auf dem Server gespeichert werden. Der Client muss angeben, dass er diesen Mechanismus unterstützt, indem er die TLS-Erweiterung des Sitzungstickets in die Hello-Nachricht des Clients einbezieht. Für neue Kunden ist diese Erweiterung leer. Der Server sendet ein neues Sitzungsticket in der NewSessionTicket-Handshake-Nachricht. Das Sitzungsticket wird mithilfe eines Schlüsselpaars verschlüsselt, das nur dem Server bekannt ist. Wenn ein Server derzeit kein neues Ticket ausstellen kann, schließt er einen regulären Handshake ab.

Mithilfe der Anmerkungen für SSL-Profile können Sie die Verwendung von Sitzungstickets gemäß RFC 5077 aktivieren. Sie können auch die Lebensdauer der Sitzungstickets festlegen, die vom Ingress Citrix ADC ausgestellt wurden, mithilfe des sessionticketlifetime Parameters.

Im Folgenden finden Sie ein Beispiel für eine Ingress-Anmerkung:

ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'

Wiederverwendung von SSL

Sie können eine vorhandene SSL-Sitzung auf einer Citrix ADC Appliance wiederverwenden. Während der SSL-Neuverhandlungsprozess aus einem vollständigen SSL-Handshake besteht, besteht die SSL-Wiederverwendung aus einem teilweisen Handshake, da der Client die SSL-ID mit der Anforderung sendet.

Mithilfe der Anmerkungen für SSL-Profile können Sie die Wiederverwendung von Sitzungen aktivieren und auch den Sitzungs-Timeout-Wert (in Sekunden) auf dem Ingress Citrix ADC festlegen.

Im Folgenden finden Sie ein Beispiel für eine Ingress-Anmerkung:

ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'

Standardmäßig ist die Option zur Wiederverwendung von Sitzungen auf der Appliance aktiviert, und der Timeoutwert dafür ist auf 120 Sekunden festgelegt. Wenn ein Client innerhalb von 120 Sekunden eine Anforderung für eine andere TCP-Verbindung und die frühere SSL-Sitzungs-ID sendet, führt die Appliance daher einen teilweisen Handshake durch.

Verwenden von Verschlüsselungsgruppen

Der Ingress Citrix ADC wird mit integrierten Verschlüsselungsgruppengeliefert. Um Verschlüsselungen zu verwenden, die nicht Teil der DEFAULT-Verschlüsselungsgruppe sind, müssen Sie sie explizit an ein SSL-Profil binden. Sie können auch eine benutzerdefinierte Verschlüsselungsgruppe erstellen, um sie an den virtuellen SSL-Server auf dem Ingress Citrix ADC zu binden.

Die integrierten Verschlüsselungsgruppen können in Tier-1 und Tier-2 Citrix ADC verwendet werden, und die benutzerdefinierte Verschlüsselungsgruppe kann nur in Tier-1 Citrix ADC verwendet werden.

Um eine benutzerdefinierte Verschlüsselungsgruppe zu verwenden, stellen Sie sicher, dass der Citrix ADC über eine benutzerdefinierte Verschlüsselungsgruppe verfügt. Führen Sie folgende Schritte aus:

  1. Erstellen Sie eine benutzerdefinierte Verschlüsselungsgruppe. Beispiel: testgroup.
  2. Binden Sie alle erforderlichen Verschlüsselungen an die benutzerdefinierte Verschlüsselungsgruppe.
  3. Notieren Sie sich den Namen der benutzerdefinierten Verschlüsselungsgruppe.

Ausführliche Anweisungen finden Sie unter Konfigurieren einer benutzerdefinierten Verschlüsselungsgruppe.

Mithilfe der Anmerkungen für SSL-Profile können Sie die integrierten Verschlüsselungsgruppen, eine benutzerdefinierte Verschlüsselungsgruppe oder beide an das SSL-Profil binden.

Im Folgenden finden Sie die Syntax der Ingress-Annotation, die Sie verwenden können, um die integrierten Verschlüsselungsgruppen und eine benutzerdefinierte Verschlüsselungsgruppe an ein SSL-Profil zu binden:

ingress.citrix.com/frontend-sslprofile:'{"snienable":"enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "testgroup", "cipherpriority" :"2"}]}'

Die Ingress-Annotation bindet die integrierte Verschlüsselungsgruppe und die benutzerdefinierte Verschlüsselungsgruppe an das SSL-Profil. SECUREtestgroup

Verwenden der Verschlüsselungsumleitung

Während des SSL-Handshakes kündigt der SSL-Client (normalerweise ein Webbrowser) die von ihm unterstützte Verschlüsselungssuite in der konfigurierten Reihenfolge der Verschlüsselungseinstellung an. Aus dieser Liste wählt der SSL-Server dann eine Verschlüsselung aus, die seiner eigenen Liste konfigurierter Verschlüsselungen entspricht.

Wenn die vom Client angekündigten Verschlüsselungen nicht mit den auf dem SSL-Server konfigurierten Verschlüsselungen übereinstimmen, schlägt der SSL-Handshake fehl. Der Ausfall wird durch eine im Browser angezeigte kryptische Fehlermeldung gemeldet. In diesen Meldungen wird selten die genaue Ursache des Fehlers angegeben.

Mit der Verschlüsselungsumleitung können Sie einen virtuellen SSL-Server so konfigurieren, dass er genaue, aussagekräftige Fehlermeldungen liefert, wenn ein SSL-Handshake fehlschlägt. Wenn der SSL-Handshake fehlschlägt, leitet die Citrix ADC Appliance den Benutzer zu einer zuvor konfigurierten URL um oder zeigt, wenn keine URL konfiguriert ist, eine intern generierte Fehlerseite an.

Im Folgenden finden Sie die Syntax der Ingress-Annotation, mit der Sie Verschlüsselungsgruppen binden und die Verschlüsselungsumleitung aktivieren können, um die Anforderung an umzuleiten redirecturl.

 ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'