ADC

SSL-Aktion konfigurieren, um den Client-Verkehr weiterzuleiten

Beim Analysieren der Hello-Nachricht des Clients kann eine NetScaler-Appliance den Client-Datenverkehr mithilfe einer SSL-Weiterleitungsaktion weiterleiten, die mit einer SSL-Richtlinie verknüpft ist. Die Richtlinie ist an den virtuellen Server am Bindungspunkt der Client-Hello-Anfrage 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 NetScaler 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 Forwardsserver ist in dieser Abbildung vom Typ SSL_TCP.

SSL-Weiterleitungsverkehr

  1. Ein Client initiiert den SSL-Handshake und sendet die Client-Hello-Nachricht an die ADC-Appliance.
  2. Die Appliance wertet die konfigurierte Richtlinie anhand der Parameter in der Hello-Nachricht des Clients aus.
  3. Wenn die Richtlinie als falsch bewertet wird, wird der entschlüsselte Datenverkehr an den HTTP-Dienst und dann an den Backend-Server weitergeleitet.
  4. Wenn die Richtlinie als wahr bewertet wird, wird der Datenverkehr an den in der Aktion definierten virtuellen Forward-Server weitergeleitet.
  5. Der virtuelle Forward-Server schließt den Handshake mit dem Client ab.
  6. Der gesamte Datenverkehr, der der Richtlinienregel entspricht, wird über den Dienst, der an den virtuellen Forward-Server gebunden ist, an den Back-End-Dienst weitergeleitet.

Konfigurieren Sie eine SSL-Aktion, um den Client-Verkehr weiterzuleiten, wenn die Appliance kein domänenspezifisches (SNI) Zertifikat besitzt

Hinweis: Diese Funktion ist in Version 12.1 Build 49.x und höher verfügbar.

In der Hello-Nachricht des Clients erhalten Sie möglicherweise eine Anfrage für eine Domain, für die das Zertifikat auf der Appliance nicht verfügbar ist. In diesem Fall können Sie eine SSL-Aktion konfigurieren, um den Client-Datenverkehr an einen anderen virtuellen Server weiterzuleiten. Im folgenden Beispiel haben wir einen virtuellen SSL-Server als virtuellen Forward-Server konfiguriert. Diese Einstellung stellt sicher, dass alle Verbindungen, die aufgrund eines fehlenden SNI-Zertifikats auf dem ursprünglichen virtuellen Server fehlschlagen, auf dem virtuellen Forward-Server erfolgreich sind.

Gehen Sie wie folgt vor:

  1. Fügen Sie einen virtuellen Lastausgleichsserver vom Typ SSL hinzu (z. B. vMain). Client-Verkehr wird auf diesem virtuellen Server empfangen.
  2. Fügen Sie Server- und CA-Zertifikate hinzu und binden Sie sie an den virtuellen SSL-Server.
  3. Fügen Sie einen SSL-Dienst mit Port 443 hinzu.
  4. Binden Sie diesen Dienst an den virtuellen SSL-Server.
  5. Fügen Sie einen weiteren virtuellen Lastausgleichsserver vom Typ SSL/SSL_TCP/TCP/SSL_BRIDGE hinzu, an den der Datenverkehr weitergeleitet wird. (Zum Beispiel fwd-vserver).
  6. Fügen Sie einen Dienst hinzu und binden Sie ihn an diesen virtuellen Server.
  7. Fügen Sie eine SSL-Weiterleitungsaktion hinzu, die den virtuellen SSL-Server fwd-vserver im Parameter ‘forward’ angibt.
  8. Fügen Sie eine SSL-Richtlinie hinzu (z. B. pol-ssl-sni), die die vorherige Aktion angibt, wenn in der Hello-Nachricht des Clients ein bestimmter Domainname (SNI) empfangen wird.
  9. Binden Sie diese Richtlinie an den virtuellen SSL-Server unter CLIENTHELLO_REQ.
  10. Speichern Sie die Konfiguration.

Konfiguration mit der 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 Client-Verkehr empfängt:

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 Sie eine SSL-Aktion, um den Client-Datenverkehr auf der Grundlage des Anwendungsprotokolls in der ALPN-Erweiterung der Client-Hello-Nachricht weiterzuleiten

Hinweis: Diese Funktion wird in Version 13.0 Build 61.x und höher unterstützt.

Eine NetScaler-Appliance kann die Protokolle identifizieren, die in der ALPN-Erweiterung der Client-Hello-Nachricht enthalten sind, während sie die Nachricht zur Richtlinienauswertung analysiert. Die Regel zur Identifizierung des Protokolls in der ALPN-Erweiterung der Client-Hello-Nachricht lautet client.ssl.client_hello.alpn.has_nextprotocol<protocol_name>. Ordnen Sie der Richtlinie eine SSL-Aktion vom Typ „Forward“ zu, um die Pakete an den virtuellen Forward-Server weiterzuleiten. Der virtuelle Forwardsserver kann vom Typ SSL, SSL_TCP, SSL_BRIDGE oder TCP sein.

Um das Anwendungsprotokoll in der ALPN-Erweiterung für die vom virtuellen SSL_TCP-Server verwalteten Verbindungen auszuhandeln, alpnProtocol wird den Frontend-SSL-Profilen ein Parameter hinzugefügt. Unterstützte Werte für den Parameter sind HTTP1.1, HTTP2 oder NONE (Standardwert). Es wird nur das im SSL-Profil angegebene Protokoll ausgehandelt, wenn dasselbe Protokoll in der ALPN-Erweiterung der Client-Hello-Nachricht empfangen wird. Die maximal unterstützte Länge der ALPN-Erweiterung für die Richtlinienbewertung beträgt 4096 Byte.

Beispielkonfiguration zur Weiterleitung aller Anfragen, die das HTTP2-Protokoll in der ALPN-Erweiterung enthalten, an einen virtuellen SSL_TCP-Server

Der virtuelle SSL_TCP-Server, an den der Datenverkehr weitergeleitet wird, 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 Client-Verkehr empfängt:

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-->