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.

您可以在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 

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:

添加ssl策略pol1规则CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction NOOP 

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

添加ssl策略pol1规则CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction DROP 

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

添加ssl策略pol1规则CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction RESET 

Ü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  ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )] 

Beispiel:

add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL 

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

  1. Navigieren Sie zuTraffic Management > SSL > Richtlinien.

  2. Klicken Sie auf der RegisterkarteSSL-AktionenaufHinzufügen.

  3. Geben Sie einen Namen an und wählen Sie in der Liste derClient-Zertifikatsüberprüfungdie OptionOptionalaus.

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  -clientAuth(DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader  -clientHeader  -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader  -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader  -clientCertHash (ENABLED | DISABLED) -certHashHeader  -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader  -sessionID (ENABLED | DISABLED) -sessionIDheader  -cipher (ENABLED | DISABLED) -cipherHeader  -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader  -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader  -OWASupport (ENABLED | DISABLED) 
show ssl action [] 

Beispiel:

add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert" 
Action-SSL-ClientCert 1)名称:显示ssl行动ion-SSL-ClientCert Data Insertion Action: Cert Header: ENABLED Cert Tag: X-Client-Cert Done 

Konfigurieren Sie eine benutzerdefinierte SSL-Aktion mithilfe der GUI

Navigieren Sie zuTraffic Management > SSL > Richtlinien, und klicken Sie auf der RegisterkarteAktionenaufHinzufü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.

嗯祖茂堂erreichen死去,将静脉诺伊尔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 unterErweiterte Richtlinienausdrücke: Parsing SSL.

Dem Befehladd SSL actionwird ein Parameterforwardhinzugefügt, und dem Befehlbind ssl vserverwird ein neuer BindpunktCLIENTHELLO_REQhinzugefügt.

Konfiguration mit der CLI

Geben Sie in der Befehlszeile Folgendes ein:

add ssl action  -forward  add ssl policy  -rule  -action  bind ssl vserver  -policyName  -priority  -type  

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 

Konfiguration mit der GUI

Navigieren Sie zuTraffic Management > SSL > Richtlinien.

SSL-Aktion erstellen:

  1. Klicken Sieunter SSL-AktionenaufHinzufügen.
  2. GebenSie unter SSL-Aktion erstelleneinen Namen für die Aktion an.
  3. Wählen Sie unterForward 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 aufErstellen.

SSL-Richtlinie erstellen:

  1. Klicken Sieunter SSL-RichtlinienaufHinzufügen.
  2. GebenSie unter SSL-Richtlinie erstelleneinen Namen für die Richtlinie an.
  3. Wählen Sieunter Aktiondie Aktion aus, die Sie zuvor erstellt haben.
  4. Geben Sie imAusdruckseditordie auszuwertende Regel ein.
  5. Klicken Sie aufErstellen.

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

  1. Navigieren Sie zuTraffic Management>Load Balancing>Virtuelle Server.
  2. Fügen Sie einen virtuellen Server hinzu oder wählen Sie ihn aus.
  3. Klicken Sie inErweiterte EinstellungenaufSSL-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 Sieunter Richtlinienbindungeine Priorität für die Richtlinie an.
  7. Wählen Sie unterTypdie OptionCLIENTHELLO_REQaus.
  8. Klicken Sie aufBind.
  9. Klicken Sie aufFertig.

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  add ssl certkey  -cert  -key  bind ssl caCertGroup   add ssl action  -caCertGrpName  add ssl policy  -rule  -action  bind ssl vserver  -policyName  -priority  -type CLIENTHELLO_REQ 

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 
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 
add ssl action pick_ca_group -cacertGrpName ca_cert_group 
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 
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 
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 
set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED bind ssl vserver v_SSL -certkeyName snicert -sniCert 
sh ssl vserver v_SSL先进的ssl配置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 

Konfiguration mit der GUI

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

  1. Navigieren Sie zuVerkehrsmanagement > SSL > CA Certificates Group.
  2. Klicken Sie aufHinzufügenund geben Sie einen Namen für die Gruppe ein.
  3. Klicken Sie aufErstellen.
  4. Wählen Sie dieCA-Zertifikatsgruppeaus und klicken Sie dann aufBindungen anzeigen.
  5. Klicken Sie aufBind.
  6. Wählen Sie auf der SeiteCA Certificate Bindingein vorhandenes Zertifikat aus oder klicken Sie auf Hinzufügen, um ein neues Zertifikat hinzuzufügen.
  7. Klicken Sie aufAuswählenund dann aufBinden.
  8. Um ein weiteres Zertifikat zu binden, wiederholen Sie die Schritte 5 bis 7.
  9. Klicken Sie aufSchließen.

Navigieren Sie zuTraffic Management > SSL > Richtlinien.

SSL-Aktion erstellen:

  1. Klicken Sieunter SSL-AktionenaufHinzufügen.
  2. GebenSie unter SSL-Aktion erstelleneinen Namen für die Aktion an.
  3. Wählen Sie unterForward 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 aufErstellen.

SSL-Richtlinie erstellen:

  1. Klicken Sieunter SSL-RichtlinienaufHinzufügen.
  2. GebenSie unter SSL-Richtlinie erstelleneinen Namen für die Richtlinie an.
  3. Wählen Sie unterAktiondie zuvor erstellte Aktion aus.
  4. Geben Sie imAusdruckseditordie auszuwertende Regel ein.
  5. Klicken Sie aufErstellen.

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

  1. Navigieren Sie zuTraffic Management>Load Balancing>Virtuelle Server.
  2. Fügen Sie einen virtuellen Server hinzu oder wählen Sie ihn aus.
  3. Klicken Sie inErweiterte EinstellungenaufSSL-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 Sieunter Richtlinienbindungeine Priorität für die Richtlinie an.
  7. Wählen Sie unterTypdie OptionCLIENTHELLO_REQaus.
  8. Klicken Sie aufBind.
  9. Klicken Sie aufFertig.

Entbinden Sie eine CA-Zertifikatsgruppe mithilfe der GUI

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

Entfernen Sie eine CA-Zertifikatsgruppe mithilfe der GUI

  1. Navigieren Sie zuVerkehrsmanagement > SSL > CA Certificates Group.
  2. Wählen Sie eine Zertifikatsgruppe aus und klicken Sie aufLöschen.
  3. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie aufJa.