SSL-Aktion zum Weiterleiten des Clientdatenverkehrs konfigurieren
Beim Analysieren der Client-Hallo-Nachricht kann eine Citrix ADC Appliance den Clientdatenverkehr mithilfe einer SSL-Forward-Aktion, die mit einer SSL-Richtlinie verknüpft ist, weiterleiten. Die Richtlinie ist an den virtuellen Server am Hello-Anforderungsbindepunkt des Clients gebunden. Einige Anwendungsfälle, in denen Weiterleitungen verwendet werden können, werden in den folgenden Abschnitten erläutert. Informationen zum Konfigurieren einer SSL-Forward-Aktion, wenn eine Chiffre auf einer Citrix ADC Appliance nicht unterstützt wird, finden Sie unter Konfigurieren einer SSL-Aktion zum Weiterleiten des Clientdatenverkehrs, wenn eine Chiffre auf dem ADC nicht unterstützt wird.
Die folgende Abbildung erläutert den Verkehrsfluss. Der virtuelle Forward-Server ist in dieser Abbildung vom Typ SSL_TCP.
- Ein Client initiiert den SSL-Handshake und sendet die Client-Hallo-Nachricht an die ADC-Appliance.
- Die Appliance wertet die konfigurierte Richtlinie mithilfe der Parameter in der Client-Hallo-Nachricht aus.
- Wenn die Richtlinie als falsch ausgewertet wird, wird der entschlüsselte Datenverkehr an den HTTP-Dienst und dann an den Back-End-Server weitergeleitet.
- Wenn die Richtlinie als wahr ausgewertet wird, wird der Datenverkehr an den in der Aktion definierten virtuellen Server weitergeleitet.
- Der virtuelle Forward-Server schließt den Handshake mit dem Client ab.
- Der gesamte Datenverkehr, der der Richtlinienregel entspricht, wird über den an den virtuellen Forward-Server gebundenen Dienst an den Back-End-Service weitergeleitet.
Konfigurieren einer SSL-Aktion zum Weiterleiten des Clientdatenverkehrs, wenn die Appliance kein domänenspezifisches (SNI) -Zertifikat hat
Hinweis: Diese Funktion ist in Version 12.1 Build 49.x und höher verfügbar.
In der Client-Hallo-Nachricht erhalten Sie möglicherweise eine Anfrage für eine Domäne, für die das Zertifikat auf der Appliance nicht verfügbar ist. In diesem Fall können Sie eine SSL-Aktion konfigurieren, um den Clientdatenverkehr an einen anderen virtuellen Server weiterzuleiten. Im folgenden Beispiel haben wir einen virtuellen SSL-Server als Vorwärtsserver konfiguriert. Diese Einstellung stellt sicher, dass alle Verbindungen, die aufgrund eines fehlenden SNI-Zertifikats auf dem ursprünglichen virtuellen Server fehlschlagen, auf dem virtuellen Weiterleitungsserver erfolgreich sind.
Gehen Sie wie folgt vor:
- Fügen Sie einen virtuellen Lastenausgleichsserver vom Typ SSL hinzu (z. B. vMain). Clientdatenverkehr wird auf diesem virtuellen Server empfangen.
- Fügen Sie Server- und CA-Zertifikate hinzu und binden Sie sie an den virtuellen SSL-Server.
- Fügen Sie einen SSL-Dienst mit Port 443 hinzu.
- Binden Sie diesen Dienst an den virtuellen SSL-Server.
- Fügen Sie einen weiteren virtuellen Lastausgleichsserver vom Typ SSL/SSL_TCP/TCP/SSL_BRIDGE hinzu, an den der Datenverkehr weitergeleitet werden soll. (Zum Beispiel
fwd-vserver
). - Fügen Sie einen Dienst hinzu und binden Sie ihn an diesen virtuellen Server.
- Fügen Sie eine SSL-Vorwärtsaktion hinzu, die den virtuellen SSL-Server
fwd-vserver
im Parameter “Vorwärts” angibt. - Fügen Sie eine SSL-Richtlinie hinzu (z. B.
pol-ssl-sni
), die die vorhergehende Aktion angibt, wenn ein bestimmter Domainname (SNI) in der Client-Hallo-Nachricht empfangen wird. - Binden Sie diese Richtlinie an den virtuellen SSL-Server unter CLIENTHELLO_REQ.
- Speichern Sie die Konfiguration.
Konfiguration über die CLI
Konfiguration für den virtuellen SSL-Server, an den der Datenverkehr weitergeleitet werden soll:
add lb vserver fwd-vserver SSL 198.51.100.20 443
add ssl certkey sv -cert complete/server/server_rsa_2048.pem -key complete/server/server_rsa_2048.ky
add ssl certkey cacert -cert SHA256-RSA-PEM_512.pem -key SHA256-RSA-PEM_512.ky
bind ssl vserver fwd-vserver -certkeyName sv
bind ssl vserver fwd-vserver -certkeyName cacert -CA
add service ssl-service2 198.51.100.18 SSL 443
bind lb vserver fwd-vserver ssl-service2
<!--NeedCopy-->
Konfiguration für den virtuellen SSL-Server, der ursprünglich den Clientdatenverkehr erhält:
add service ssl-service 198.51.100.5 SSL 443
add lb vserver vMain SSL 198.51.100.25 443
bind ssl vserver vMain -certkeyName sv
bind lb vserver vMain ssl-service
set ssl vserver vMain -sni ENABLED
add ssl certKey snicert2 -cert /nsconfig/ssl/complete/SNI/server/serverabc.pem -key /nsconfig/ssl/complete/SNI/server/serverabc.ky
add ssl certKey snicert -cert /nsconfig/ssl/complete/SNI/server/serverabcnetscaler.pem -key /nsconfig/ssl/complete/SNI/server/serverabcnetscaler.ky
bind ssl vserver vMain -certkeyName snicert -sniCert
bind ssl vserver vMain -certkeyName snicert2 -sniCert
<!--NeedCopy-->
Richtlinienkonfiguration für den virtuellen SSL-Server vMain:
add ssl action act_ssl_fwd -forward fwd-vserver
add ssl policy pol-ssl-sni -rule client.ssl.client_hello.sni.contains("xyz") -action act_ssl_fwd
bind ssl vserver vMain -policyName pol-ssl-sni -type CLIENTHELLO_REQ -priority 1
<!--NeedCopy-->
sh ssl vserver vMain
Advanced SSL configuration for VServer vMain:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLfwd-vserver Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: ENABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLfwd-vserver: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
2) CertKey Name: snicert2 Server Certificate for SNI
3) CertKey Name: snicert Server Certificate for SNI
Data policy
1) Policy Name: pol-ssl-sni Priority: 1
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
sh ssl policy pol-ssl-sni
Name: pol-ssl-sni
Rule: client.ssl.client_hello.sni.contains("xyz")
Action: act_ssl_fwd
UndefAction: Use Global
Hits: 0
Undef Hits: 0
Policy is bound to following entities
1) Bound to: CLIENTHELLO_REQ VSERVER v1
Priority: 1
Done
<!--NeedCopy-->
sh ssl action act_ssl_fwd
1) Name: act_ssl_fwd
Type: Data Insertion
Forward to: fwd-vserver
Hits: 0
Undef Hits: 0
Action Reference Count: 1
Done
<!--NeedCopy-->
sh ssl vserver fwd-vserver
Advanced SSL configuration for VServer fwd-vserver:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLfwd-vserver Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLfwd-vserver: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
Konfigurieren einer SSL-Aktion zum Weiterleiten des Clientdatenverkehrs basierend auf dem Anwendungsprotokoll in der ALPN-Erweiterung der Client-Hallo-Nachricht
Hinweis: Diese Funktion wird in Version 13.0 Build 61.x und höher unterstützt.
Eine Citrix ADC Appliance kann die Protokolle identifizieren, die in der ALPN-Erweiterung der Client-Hallo-Nachricht enthalten sind, während die Nachricht zur Richtlinienbewertung analysiert wird. Die Regel zur Identifizierung des Protokolls in der ALPN-Erweiterung der Client-Hallo-Nachricht lautet client.ssl.client_hello.alpn.has_nextprotocol<protocol_name>
. Ordnen Sie eine SSL-Aktion vom Typ “Weiterleiten” mit der Richtlinie zu, um die Pakete an den virtuellen Weiterleitungsserver weiterzuleiten. Der virtuelle Vorwärtsserver kann vom Typ SSL, SSL_TCP, SSL_BRIDGE oder TCP sein.
Um das Anwendungsprotokoll in der ALPN-Erweiterung für die Verbindungen auszuhandeln, die vom virtuellen SSL_TCP-Server verarbeitet werden, wird den Front-End-SSL-Profilen ein Parameter alpnProtocol
hinzugefügt. Unterstützte Werte für den Parameter sind HTTP1.1, HTTP2 oder NONE (Standardwert). Nur das im SSL-Profil angegebene Protokoll wird ausgehandelt, wenn das gleiche Protokoll in der ALPN-Erweiterung der Client-Hallo-Nachricht empfangen wird. Die maximal unterstützte Länge der ALPN-Erweiterung für die Richtlinienbewertung beträgt 4096 Byte.
Beispielkonfiguration zur Weiterleitung aller Anforderungen mit dem HTTP2-Protokoll in der ALPN-Erweiterung an einen virtuellen SSL_TCP-Server
Der virtuelle SSL_TCP-Server, an den der Datenverkehr weitergeleitet werden soll, ist fwd-vserver-1
.
Konfiguration für den virtuellen SSL-Server, an den der Datenverkehr weitergeleitet werden soll:
add lb vserver fwd-vserver-1 SSL_TCP 198.51.100.20 443
add ssl certkey sv -cert complete/server/server_rsa_2048.pem -key complete/server/server_rsa_2048.ky
add ssl certkey rootCA -cert SHA256-RSA-PEM_512.pem -key SHA256-RSA-PEM_512.ky
bind ssl vserver fwd-vserver-1 -certkeyName sv
bind ssl vserver fwd-vserver-1 -certkeyName rootCA -CA
add service ssl-tcp-service 198.51.100.14 SSL_TCP 443
bind lb vserver fwd-vserver-1 ssl-tcp-service
<!--NeedCopy-->
Konfiguration für den virtuellen SSL-Server, der ursprünglich den Clientdatenverkehr erhält:
add service ssl-service 198.51.100.5 SSL 443
add lb vserver vMain-alpn SSL 198.51.100.25 443
bind ssl vserver vMain-alpn -certkeyName sv
bind lb vserver vMain-alpn ssl-service
<!--NeedCopy-->
Richtlinienkonfiguration für den virtuellen SSL-Server vMain-alpn:
add ssl action forward-action-alpn -forward fwd-vserver-1
add ssl policy pol-ssl-alpn -rule "client.ssl.client_hello.alpn.has_nextprotocol("h2")" -action forward-action-alpn
bind ssl vserver VMain-alpn -policyName pol-ssl-alpn -priority 2 -type CLIENTHELLO_REQ
<!--NeedCopy-->
sh ssl vserver vMain-alpn
Advanced SSL configuration for VServer vMain-alpn:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
HSTS Preload: NO
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
Data policy
1) Policy Name: pol-ssl-alpn Priority: 2
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
sh ssl policy pol-ssl-alpn
Name: pol-ssl-alpn
Rule: client.ssl.client_hello.alpn.has_nextprotocol("h2")
Action: forward-action-alpn
UndefAction: Use Global
Hits: 0
Undef Hits: 0
Policy is bound to following entities
1) Bound to: CLIENTHELLO_REQ VSERVER VMain-alpn
Priority: 2
Done
<!--NeedCopy-->
sh ssl action forward-action-alpn
1) Name: forward-action-alpn
Type: Data Insertion
Forward to: fwd-vserver-1
Hits: 0
Undef Hits: 0
Action Reference Count: 1
Done
<!--NeedCopy-->
sh ssl vserver fwd-vserver-1
Advanced SSL configuration for VServer fwd-vserver-1:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
HSTS Preload: NO
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
2) CertKey Name: rootCA CA Certificate OCSPCheck: Optional CA_Name Sent
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
In diesem Artikel
- Konfigurieren einer SSL-Aktion zum Weiterleiten des Clientdatenverkehrs, wenn die Appliance kein domänenspezifisches (SNI) -Zertifikat hat
- Konfiguration über die CLI
- Konfigurieren einer SSL-Aktion zum Weiterleiten des Clientdatenverkehrs basierend auf dem Anwendungsprotokoll in der ALPN-Erweiterung der Client-Hallo-Nachricht