ADC

Integrierte SSL-Aktionen und benutzerdefinierte Aktionen

Sofern Sie nicht nur die in Ihren Richtlinien integrierten Aktionen benötigen, müssen Sie die Aktionen erstellen, bevor Sie die Richtlinien erstellen. Anschließend können Sie die Aktionen angeben, wenn Sie die Richtlinien erstellen. Es gibt zwei Arten von integrierten Aktionen: Kontrollaktionen und Datenaktionen. Sie verwenden Kontrollaktionen in Kontrollrichtlinien und Datenaktionen in Datenrichtlinien.

Die integrierten Steueraktionen sind:

  • doClientAuth — Führt die Authentifizierung des Client-Zertifikats durch. (Nicht unterstützt für TLS1.3)
  • noClientAuth — Führen Sie keine Authentifizierung mit dem Client-Zertifikat durch. (Nicht unterstützt für TLS1.3)

Die integrierten Datenaktionen sind:

  • ZURÜCKSETZEN — Beenden Sie die Verbindung, indem Sie ein RST-Paket an den Client senden.
  • Löschen — Löscht alle Pakete vom Client. Die Verbindung bleibt geöffnet, bis der Client sie schließt.
  • NOOP — leitet das Paket weiter, ohne eine Operation daran durchzuführen.

Hinweis: Alle von der Client-Authentifizierung abhängigen Aktionen wie ClientCertVerification und SSLLogProfile werden vom TLS 1.3-Protokoll nicht unterstützt.

Sie können benutzerdefinierte Datenaktionen erstellen. Wenn Sie die Client-Authentifizierung aktivieren, können Sie eine SSL-Aktion erstellen, um Client-Zertifikatsdaten in den Anforderungsheader einzufügen, bevor die Anfrage an den Webserver weitergeleitet wird.

Wenn eine politische Bewertung zu einem undefinierten Zustand führt, wird eine UNDEF-Aktion durchgeführt. Sie können entweder für eine Datenrichtlinie oder eine Kontrollrichtlinie RESET, DROP oder NOOP als UNDEF-Aktion angeben. Für eine Kontrollrichtlinie haben Sie auch die Möglichkeit, DOCLIENTAUTH oder NOCLIENTAUTH anzugeben.

Beispiele für integrierte Aktionen in einer Richtlinie

Wenn der Client im folgenden Beispiel eine andere Chiffre als eine Verschlüsselung der Kategorie EXPORT sendet, fordert die NetScaler-Appliance eine Client-Authentifizierung an. Der Kunde muss ein gültiges Zertifikat für eine erfolgreiche Transaktion vorlegen.

add ssl policy pol1 -rule CLIENT.SSL.CIPHER_EXPORTABLE.NOT -reqAction DOCLIENTAUTH
<!--NeedCopy-->

In den folgenden Beispielen wird davon ausgegangen, dass die Client-Authentifizierung aktiviert ist.

Wenn die Version im vom Benutzer bereitgestellten Zertifikat mit der Version in der Richtlinie übereinstimmt, wird nichts unternommen und das Paket wird weitergeleitet:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction NOOP
<!--NeedCopy-->

Wenn die Version im vom Benutzer bereitgestellten Zertifikat mit der Version in der Richtlinie übereinstimmt, wird die Verbindung unterbrochen:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction DROP
<!--NeedCopy-->

Wenn die Version im vom Benutzer bereitgestellten Zertifikat mit der Version in der Richtlinie übereinstimmt, wird die Verbindung zurückgesetzt:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction RESET
<!--NeedCopy-->

Überprüfung von Client-Zertifikaten mit richtlinienbasierter Client-Authentifizierung

Sie können die Überprüfung des Client-Zertifikats auf „Obligatorisch“ oder „Option“ setzen, wenn Sie die richtlinienbasierte Client-Authentifizierung konfiguriert haben. Die Standardeinstellung ist obligatorisch.

Stellen Sie die Überprüfung des Client-Zertifikats mithilfe der CLI auf optional ein

Geben Sie in der Befehlszeile Folgendes ein:

add ssl action <name> ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )]
<!--NeedCopy-->

Beispiel:

add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL
<!--NeedCopy-->

Stellen Sie die Überprüfung des Client-Zertifikats mithilfe der GUI auf optional ein

  1. Navigieren Sie zu Traffic Management > SSL > Richtlinien.

  2. Klicken Sie auf der Registerkarte SSL-Aktionen auf Hinzufügen.

  3. Geben Sie einen Namen an und wählen Sie in der Liste der Client-Zertifikatsüberprüfung die Option Optionalaus.

Benutzerdefinierte SSL-Aktionen

Zusätzlich zu den integrierten Aktionen können Sie je nach Bereitstellung auch andere SSL-Aktionen konfigurieren. Diese Aktionen werden als benutzerdefinierte Aktionen bezeichnet.

Konfigurieren Sie eine benutzerdefinierte SSL-Aktion mithilfe der CLI

Geben Sie an der Befehlszeile die folgenden Befehle ein, um eine Aktion zu konfigurieren und die Konfiguration zu überprüfen:

add SSL action <name> -clientAuth(DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader <string> -clientHeader <string> -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader <string> -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader <string> -clientCertHash (ENABLED | DISABLED) -certHashHeader <string> -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader <string> -sessionID (ENABLED | DISABLED) -sessionIDheader <string> -cipher (ENABLED | DISABLED) -cipherHeader <string> -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader <string> -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader <string> -OWASupport (ENABLED | DISABLED)
<!--NeedCopy-->
show ssl action [<name>]
<!--NeedCopy-->

Beispiel:

add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert"
<!--NeedCopy-->
show ssl action Action-SSL-ClientCert

1)      Name: Action-SSL-ClientCert
        Data Insertion Action:
        Cert Header: ENABLED            Cert Tag: X-Client-Cert
Done
<!--NeedCopy-->

Konfigurieren Sie eine benutzerdefinierte SSL-Aktion mithilfe der GUI

Navigieren Sie zu Traffic Management > SSL > Richtlinien, und klicken Sie auf der Registerkarte Aktionen auf Hinzufügen.

Konfigurieren Sie eine SSL-Aktion, um den Client-Verkehr an einen anderen virtuellen Server weiterzuleiten

Administratoren können eine SSL-Aktion konfigurieren, um den auf einem virtuellen SSL-Server empfangenen Client-Datenverkehr an einen anderen virtuellen Server weiterzuleiten, um SSL-Offloading zu vermeiden. Oder zum Beenden der Verbindung auf der ADC-Appliance. Dieser virtuelle Server kann vom Typ SSL, TCP oder SSL_BRIDGE sein. Administratoren können sich beispielsweise dafür entscheiden, die Anfrage zur weiteren Bearbeitung an einen anderen virtuellen Server weiterzuleiten, anstatt die Verbindung zu beenden, wenn einer der folgenden Fälle vorliegt:

  • Die Appliance hat kein Zertifikat.
  • Die Appliance unterstützt keine bestimmte Chiffre.

Um dies zu erreichen, wird ein neuer Bindpunkt ‘CLIENTHELLO_REQ’ hinzugefügt, um den Client-Verkehr auszuwerten, wenn ein Client-Hallo empfangen wird. Wenn die Richtlinie, die an den virtuellen Server gebunden ist, der den Client-Verkehr empfängt, nach dem Parsen des Client-Hello als wahr bewertet wird, wird der Datenverkehr an einen anderen virtuellen Server weitergeleitet. Wenn dieser virtuelle Server vom Typ SSL ist, führt er den Handshake durch. Wenn dieser virtuelle Server vom Typ TCP oder SSL_BRIDGE ist, führt der Backend-Server den Handshake durch.

In Version 12.1-49.x werden nur die Vorwärts- und Reset-Aktionen für den CLIENTHELLO_REQ-Bindpunkt unterstützt. Die folgenden Ausdruckspräfixe sind verfügbar:

  • CLIENT.SSL.CLIENT_HELLO.CIPHERS.HAS_HEXCODE
  • CLIENT.SSL.CLIENT_HELLO.CLIENT_VERSION
  • CLIENT.SSL.CLIENT_HELLO.IS_RENEGOTIATE
  • CLIENT.SSL.CLIENT_HELLO.IS_REUSE
  • CLIENT.SSL.CLIENT_HELLO.IS_SCSV
  • CLIENT.SSL.CLIENT_HELLO.IS_SESSION_TICKET
  • CLIENT.SSL.CLIENT_HELLO.LENGTH
  • CLIENT.SSL.CLIENT_HELLO.SNI
  • CLIENT.SSL.CLIENT_HELLO.ALPN.HAS_NEXTPROTOCOL (from release 13.0 build 61.x)

Eine Beschreibung dieser Präfixe finden Sie unter Erweiterte Richtlinienausdrücke: Parsing SSL.

Dem Befehl add SSL action wird ein Parameter forward hinzugefügt, und dem Befehl bind ssl vserver wird ein neuer Bindpunkt CLIENTHELLO_REQ hinzugefügt.

Konfiguration mit der CLI

Geben Sie in der Befehlszeile Folgendes ein:

add ssl action <name> -forward <virtual server name>

add ssl policy <name> -rule <expression> -action <string>

bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type <type>
<!--NeedCopy-->

BEISPIEL:

add ssl action act1 -forward v2

add ssl policy pol1 -rule client.ssl.client_hello.ciphers.has_hexcode(0x002f) -action act1

bind ssl vserver v1 -policyName pol1 -priority 1 -type CLIENTHELLO_REQ
<!--NeedCopy-->

Konfiguration mit der GUI

Navigieren Sie zu Traffic Management > SSL > Richtlinien.

SSL-Aktion erstellen:

  1. Klicken Sie unter SSL-Aktionenauf Hinzufügen.
  2. Geben Sie unter SSL-Aktion erstelleneinen Namen für die Aktion an.
  3. Wählen Sie unter Forward Action Virtual Servereinen vorhandenen virtuellen Server aus oder fügen Sie einen neuen virtuellen Server hinzu, an den der Datenverkehr weitergeleitet werden soll.
  4. Stellen Sie optional weitere Parameter ein.
  5. Klicken Sie auf Erstellen.

SSL-Richtlinie erstellen:

  1. Klicken Sie unter SSL-Richtlinienauf Hinzufügen.
  2. Geben Sie unter SSL-Richtlinie erstelleneinen Namen für die Richtlinie an.
  3. Wählen Sie unter Aktiondie Aktion aus, die Sie zuvor erstellt haben.
  4. Geben Sie im Ausdruckseditordie auszuwertende Regel ein.
  5. Klicken Sie auf Erstellen.

Erstellen oder fügen Sie einen virtuellen Server und eine Bindungsrichtliniehinzu:

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Fügen Sie einen virtuellen Server hinzu oder wählen Sie ihn aus.
  3. Klicken Sie in Erweiterte Einstellungenauf SSL-Richtlinien.
  4. Klicken Sie in den Abschnitt SSL-Richtlinie.
  5. Wählen Sie unter Richtlinieauswählen die Richtlinie aus, die Sie zuvor erstellt haben.
  6. Geben Sie unter Richtlinienbindungeine Priorität für die Richtlinie an.
  7. Wählen Sie unter Typdie Option CLIENTHELLO_REQaus.
  8. Klicken Sie auf Bind.
  9. Klicken Sie auf Fertig.

Die End-to-End-Konfiguration für die beliebtesten Anwendungsfälle finden Sie in den folgenden Themen:

SSL-Aktion zur selektiven Auswahl von Zertifizierungsstellen basierend auf SNI für die Clientauthentifizierung

Sie können in der Client-Zertifikatsanfrage nur die Liste der CAs senden, die auf SNI (Domain) basieren, und nicht die Liste aller CAs, die an einen virtuellen SSL-Server gebunden sind. Wenn beispielsweise ein Client-Hallo empfangen wird, werden nur die CA-Zertifikate gesendet, die auf dem SSL-Richtlinienausdruck basieren (z. B. SNI). Um einen bestimmten Satz von Zertifikaten zu senden, müssen Sie eine CA-Zertifikatsgruppe erstellen. Binden Sie dann diese Gruppe an eine SSL-Aktion und die Aktion an eine SSL-Richtlinie. Wenn die Richtlinie, die an den virtuellen Server gebunden ist, der den Client-Verkehr empfängt, nach dem Parsen des Client-Hello als wahr bewertet wird, wird im Client-Anforderungszertifikat nur eine bestimmte CA-Zertifikatsgruppe gesendet.

Zuvor mussten Sie CA-Zertifikate an einen virtuellen SSL-Server binden. Mit dieser Erweiterung können Sie einfach CA-Zertifikatsgruppen hinzufügen und sie einer SSL-Aktion zuordnen.

Hinweis: Aktivieren Sie die Client-Authentifizierung und SNI auf dem virtuellen SSL-Server. Binden Sie die richtigen SNI-Zertifikate an den virtuellen Server.

Gehen Sie wie folgt vor:

  1. Fügen Sie eine CA-Zertifikatsgruppe hinzu.

  2. Fügen Sie Zertifikatsschlüsselpaare hinzu.

  3. Binden Sie die Zertifikatsschlüsselpaare an diese Gruppe.

  4. Fügen Sie eine SSL-Aktion hinzu.

  5. Fügen Sie eine SSL-Richtlinie hinzu. Geben Sie die Aktion in der Richtlinie an.

  6. Binden Sie die Richtlinie an einen virtuellen SSL-Server. Geben Sie den Bindungspunkt als CLIENTHELLO_REQ an.

Konfiguration mit der CLI

Geben Sie in der Befehlszeile die folgenden Befehle nacheinander ein:

add ssl caCertGroup <caCertGroupName>
add ssl certkey <certkey_name> -cert <cert> -key <key>
bind ssl caCertGroup <caCertGroupName> <certkey_name>
add ssl action <name> -caCertGrpName <string>
add ssl policy <name> -rule <expression> -action <string>
bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type CLIENTHELLO_REQ
<!--NeedCopy-->

Beispiel:

add ssl cacertGroup ca_cert_group

add ssl certkey ca_certkey1 -cert cacert1 -key cakey1
add ssl certkey ca_certkey2 -cert cacert2 -key cakey2
add ssl certkey snicert -cert snicert -key snikey

bind ssl cacertGroup ca_cert_group ca_certkey1
bind ssl caCertGroup ca_cert_group ca_certkey2
<!--NeedCopy-->
sh ssl caCertGroup ca_cert_group

CA GROUP NAME:     ca_cert_group
ACTIONS REFERRING: 1

1) CertKey Name: ca_certkey1   CA Certificate   CRLCheck: Optional   CA_Name Sent
2) CertKey Name: ca_certkey2   CA Certificate   CRLCheck: Optional   CA_Name Sent
<!--NeedCopy-->
add ssl action pick_ca_group -cacertGrpName ca_cert_group
<!--NeedCopy-->
sh ssl action pick_ca_group
1) Name: pick_ca_group
   Type: Data Insertion
   PickCaCertGroup: ca_cert_group
   Hits: 0
   Undef Hits: 0
   Action Reference Count: 1
<!--NeedCopy-->
add ssl policy snipolicy -rule client.ssl.client_hello.sni.contains("abc") -action pick_ca_group
bind ssl vserver v_SSL -policyName snipolicy -type CLIENTHELLO_REQ -priority 10
<!--NeedCopy-->
sh ssl policy snipolicy
    Name: snipolicy
    Rule: client.ssl.client_hello.sni.contains("abc")
    Action: pick_ca_group
    UndefAction: Use Global
    Hits: 0
    Undef Hits: 0


    Policy is bound to following entities
1)  Bound to: CLIENTHELLO_REQ VSERVER v_SSL
    Priority: 10
<!--NeedCopy-->
set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED
bind ssl vserver v_SSL -certkeyName snicert -sniCert
<!--NeedCopy-->
sh ssl vserver v_SSL

    Advanced SSL configuration for VServer v_SSL:
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED   Ephemeral RSA: ENABLED   Refresh Count: 0
    Session Reuse: ENABLED   Timeout: 120 seconds
    Cipher Redirect: DISABLED
    SSLv2 Redirect: DISABLED
    ClearText Port: 0
    Client Auth: ENABLED   Client Cert Required: Mandatory
    SSL Redirect: DISABLED
    Non FIPS Ciphers: DISABLED
    SNI: ENABLED
    OCSP Stapling: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    SSLv2: 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: snicert   Server Certificate for SNI


    Data policy
1)  Policy Name: snipolicy  Priority: 10



1)  Cipher Name: DEFAULT
    Description: Default cipher list with encryption strength >= 128bit
<!--NeedCopy-->

Konfiguration mit der GUI

Erstellen Sie eine CA-Zertifikatsgruppe und binden Sie Zertifikate an die Gruppe:

  1. Navigieren Sie zu Verkehrsmanagement > SSL > CA Certificates Group.
  2. Klicken Sie auf Hinzufügen und geben Sie einen Namen für die Gruppe ein.
  3. Klicken Sie auf Erstellen.
  4. Wählen Sie die CA-Zertifikatsgruppe aus und klicken Sie dann auf Bindungen anzeigen.
  5. Klicken Sie auf Bind.
  6. Wählen Sie auf der Seite CA Certificate Binding ein vorhandenes Zertifikat aus oder klicken Sie auf Hinzufügen, um ein neues Zertifikat hinzuzufügen.
  7. Klicken Sie auf Auswählen und dann auf Binden.
  8. Um ein weiteres Zertifikat zu binden, wiederholen Sie die Schritte 5 bis 7.
  9. Klicken Sie auf Schließen.

Navigieren Sie zu Traffic Management > SSL > Richtlinien.

SSL-Aktion erstellen:

  1. Klicken Sie unter SSL-Aktionenauf Hinzufügen.
  2. Geben Sie unter SSL-Aktion erstelleneinen Namen für die Aktion an.
  3. Wählen Sie unter Forward Action Virtual Servereinen vorhandenen virtuellen Server aus oder fügen Sie einen virtuellen Server hinzu, an den der Datenverkehr weitergeleitet werden soll.
  4. Stellen Sie optional weitere Parameter ein.
  5. Klicken Sie auf Erstellen.

SSL-Richtlinie erstellen:

  1. Klicken Sie unter SSL-Richtlinienauf Hinzufügen.
  2. Geben Sie unter SSL-Richtlinie erstelleneinen Namen für die Richtlinie an.
  3. Wählen Sie unter Aktiondie zuvor erstellte Aktion aus.
  4. Geben Sie im Ausdruckseditordie auszuwertende Regel ein.
  5. Klicken Sie auf Erstellen.

Erstellen oder fügen Sie einen virtuellen Server und eine Bindungsrichtliniehinzu:

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Fügen Sie einen virtuellen Server hinzu oder wählen Sie ihn aus.
  3. Klicken Sie in Erweiterte Einstellungenauf SSL-Richtlinien.
  4. Klicken Sie in den Abschnitt SSL-Richtlinie.
  5. Wählen Sie unter Richtlinieauswählen die Richtlinie aus, die Sie zuvor erstellt haben.
  6. Geben Sie unter Richtlinienbindungeine Priorität für die Richtlinie an.
  7. Wählen Sie unter Typdie Option CLIENTHELLO_REQaus.
  8. Klicken Sie auf Bind.
  9. Klicken Sie auf Fertig.

Entbinden Sie eine CA-Zertifikatsgruppe mithilfe der GUI

  1. Navigieren Sie zu Verkehrsmanagement > SSL > CA Certificates Group.
  2. Wählen Sie eine Zertifikatsgruppe aus und klicken Sie auf Bindungen anzeigen.
  3. Wählen Sie das Zertifikat aus, das Sie aus der Gruppe entfernen möchten, und klicken Sie auf Binden aufheben.
  4. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf **Ja••.
  5. Klicken Sie auf Schließen.

Entfernen Sie eine CA-Zertifikatsgruppe mithilfe der GUI

  1. Navigieren Sie zu Verkehrsmanagement > SSL > CA Certificates Group.
  2. Wählen Sie eine Zertifikatsgruppe aus und klicken Sie auf Löschen.
  3. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Ja.