ADC

Actions intégrées SSL et actions définies par l’utilisateur

À moins que vous n’ayez uniquement besoin des actions intégrées à vos politiques, vous devez créer les actions avant de créer les politiques. Vous pouvez ensuite spécifier les actions lorsque vous créez les politiques. Les actions intégrées sont de deux types : les actions de contrôle et les actions de données. Vous utilisez des actions de contrôle dans des politiques de contrôle et des actions de données dans des politiques de données.

Les actions de contrôle intégrées sont les suivantes :

  • DoClientAuth : effectuez l’authentification par certificat client. (Non pris en charge pour TLS1.3)
  • NoClientAuth : n’effectuez pas d’authentification par certificat client. (Non pris en charge pour TLS1.3)

Les actions de données intégrées sont les suivantes :

  • Réinitialiser : fermez la connexion en envoyant un paquet RST au client.
  • Supprimer : supprimez tous les paquets du client. La connexion reste ouverte jusqu’à ce que le client la ferme.
  • NOOP : transfère le paquet sans effectuer aucune opération sur celui-ci.

Remarque : Les actions dépendantes de l’authentification du client, telles que ClientCertVerification et SSLLogProfile, ne sont pas prises en charge par le protocole TLS 1.3.

Vous pouvez créer des actions de données définies par l’utilisateur. Si vous activez l’authentification du client, vous pouvez créer une action SSL pour insérer les données du certificat client dans l’en-tête de la demande avant de transmettre la demande au serveur Web.

Si l’évaluation d’une politique aboutit à un état non défini, une action UNDEF est exécutée. Pour une politique de données ou une politique de contrôle, vous pouvez spécifier RESET, DROP ou NOOP comme action UNDEF. Pour une politique de contrôle, vous avez également la possibilité de spécifier DOCLIENTAUTH ou NOCLIENTAUTH.

Exemples d’actions intégrées dans une politique

Dans l’exemple suivant, si le client envoie un code autre qu’un code de catégorie EXPORT, l’appliance NetScaler demande l’authentification du client. Le client doit fournir un certificat valide pour que la transaction soit réussie.

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

Les exemples suivants supposent que l’authentification du client est activée.

Si la version du certificat fourni par l’utilisateur correspond à la version de la politique, aucune action n’est entreprise et le paquet est transféré :

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

Si la version du certificat fourni par l’utilisateur correspond à la version de la politique, la connexion est interrompue :

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

Si la version du certificat fourni par l’utilisateur correspond à la version de la politique, la connexion est réinitialisée :

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

Vérification du certificat client avec authentification client basée sur des politiques

Vous pouvez définir la vérification du certificat client comme obligatoire ou facultative lorsque vous avez configuré l’authentification client basée sur des politiques. La valeur par défaut est obligatoire.

Définissez la vérification du certificat client sur facultative à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

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

Exemple :

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

Définissez la vérification du certificat client sur facultative à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Stratégies.

  2. Dans l’onglet Actions SSL, cliquez sur Ajouter.

  3. Spécifiez un nom et dans la liste de vérification des certificats clients, sélectionnez Facultatif.

Actions SSL définies par l’utilisateur

Outre les actions intégrées, vous pouvez également configurer d’autres actions SSL en fonction de votre déploiement. Ces actions sont appelées actions définies par l’utilisateur.

Configurer une action SSL définie par l’utilisateur à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour configurer une action et vérifier la configuration :

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

Exemple :

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

Configurer une action SSL définie par l’utilisateur à l’aide de l’interface graphique

Accédez à Gestion du trafic > SSL > Stratégies et, sous l’onglet Actions, cliquez sur Ajouter.

Configurer une action SSL pour transférer le trafic client vers un autre serveur virtuel

Les administrateurs peuvent configurer une action SSL pour transférer le trafic client reçu sur un serveur virtuel SSL vers un autre serveur virtuel afin d’éviter le déchargement SSL. Ou pour mettre fin à la connexion sur l’appliance ADC. Ce serveur virtuel peut être du type SSL, TCP ou SSL_BRIDGE. Par exemple, les administrateurs peuvent choisir de transmettre la demande à un autre serveur virtuel pour une action ultérieure au lieu de mettre fin à la connexion dans l’un des cas suivants :

  • L’appliance ne possède pas de certificat.
  • L’appliance ne prend pas en charge un chiffrement spécifique.

Pour atteindre ce qui précède, un nouveau point de liaison « CLIENTHELLO_REQ » est ajouté pour évaluer le trafic client lorsqu’un bonjour client est reçu. Si la politique liée au serveur virtuel recevant le trafic client est évaluée comme vraie après avoir analysé le client hello, le trafic est transféré vers un autre serveur virtuel. Si ce serveur virtuel est de type SSL, il effectue l’établissement de la liaison. Si ce serveur virtuel est de type TCP ou SSL_BRIDGE, le serveur principal effectue l’établissement de la liaison.

Dans la version 12.1-49.x, seules les actions de transfert et de réinitialisation sont prises en charge pour le point de liaison CLIENTHELLO_REQ. Les préfixes d’expression suivants sont disponibles :

  • 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 (à partir de la version 13.0 build 61.x)

Pour obtenir une description de ces préfixes, voir Expressions de stratégie avancées : analyse SSL.

Un paramètre forward est ajouté à la commande add SSL action et un nouveau point de liaison CLIENTHELLO_REQ est ajouté à la commande bind ssl vserver.

Configuration à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

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

EXEMPLE :

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

Configuration à l’aide de l’interface graphique

Accédez à Gestion du trafic > SSL > Stratégies.

Créez une action SSL :

  1. Dans Actions SSL, cliquez sur Ajouter.
  2. Dans Créer une action SSL, attribuez un nom à l’action.
  3. Dans Forward Action Virtual Server, sélectionnez un serveur virtuel existant ou ajoutez un nouveau serveur virtuel vers lequel transférer le trafic.
  4. Définissez éventuellement d’autres paramètres.
  5. Cliquez sur Create.

Créez une politique SSL :

  1. Dans Politiques SSL, cliquez sur Ajouter.
  2. Dans Créer une politique SSL, attribuez un nom à la politique.
  3. Dans Action, sélectionnez l’action que vous avez créée précédemment.
  4. Dans Expression Editor, entrez la règle à évaluer.
  5. Cliquez sur Create.

Créez ou ajoutez un serveur virtuel et une politique de liaison :

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Ajoutez ou sélectionnez un serveur virtuel.
  3. Dans Paramètres avancés, cliquez sur Stratégies SSL.
  4. Cliquez dans la section Politique SSL.
  5. Dans Sélectionner une stratégie, sélectionnez la politique que vous avez créée précédemment.
  6. Dans Policy Binding, spécifiez une priorité pour la politique.
  7. Dans Type, sélectionnez CLIENTHELLO_REQ.
  8. Cliquez sur Bind.
  9. Cliquez sur Terminé.

Pour connaître la configuration de bout en bout pour les cas d’utilisation les plus courants, consultez les rubriques suivantes :

Action SSL pour sélectionner sélectivement des autorités de certification basées sur SNI pour l’authentification du client

Vous pouvez envoyer uniquement la liste des autorités de certification basée sur le SNI (domaine) dans la demande de certificat client plutôt que la liste de toutes les autorités de certification liées à un serveur virtuel SSL. Par exemple, lorsqu’un bonjour client est reçu, seuls les certificats CA basés sur l’expression de politique SSL (par exemple, SNI) sont envoyés. Pour envoyer un ensemble spécifique de certificats, vous devez créer un groupe de certificats CA. Liez ensuite ce groupe à une action SSL, puis liez l’action à une politique SSL. Si la politique liée au serveur virtuel recevant le trafic client est évaluée comme vraie après avoir analysé le client hello, seul un groupe de certificats CA spécifique est envoyé dans le certificat de demande du client.

Auparavant, vous deviez lier des certificats CA à un serveur virtuel SSL. Grâce à cette amélioration, vous pouvez simplement ajouter des groupes de certificats CA et les associer à une action SSL.

Remarque : Activez l’authentification du client et le SNI sur le serveur virtuel SSL. Liez les bons certificats SNI au serveur virtuel.

Procédez comme suit :

  1. Ajoutez un groupe de certificats CA.

  2. Ajoutez des paires de clés de certificat.

  3. Liez les paires de clés de certificat à ce groupe.

  4. Ajoutez une action SSL.

  5. Ajoutez une politique SSL. Spécifiez l’action dans la politique.

  6. Liez la politique à un serveur virtuel SSL. Spécifiez le point de liaison sous la forme CLIENTHELLO_REQ.

Configuration à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes dans l’ordre suivant :

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

Exemple :

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

Configuration à l’aide de l’interface graphique

Créez un groupe de certificats CA et liez les certificats au groupe :

  1. Accédez à Gestion du trafic > SSL > Groupe de certificats d’autoritéde certification.
  2. Cliquez sur Ajouter et attribuez un nom au groupe.
  3. Cliquez sur Create.
  4. Sélectionnez le groupe de certificats CA, puis cliquez sur Afficher les liaisons.
  5. Cliquez sur Bind.
  6. Sur la page CA Certificate Binding, sélectionnez un certificat existant ou cliquez sur Ajouter pour ajouter un nouveau certificat.
  7. Cliquez sur Sélectionner, puis sur Lier.
  8. Pour lier un autre certificat, répétez les étapes 5 à 7.
  9. Cliquez sur Fermer.

Accédez à Gestion du trafic > SSL > Stratégies.

Créez une action SSL :

  1. Dans Actions SSL, cliquez sur Ajouter.
  2. Dans Créer une action SSL, attribuez un nom à l’action.
  3. Dans Forward Action Virtual Server, sélectionnez un serveur virtuel existant ou ajoutez un serveur virtuel vers lequel transférer le trafic.
  4. Définissez éventuellement d’autres paramètres.
  5. Cliquez sur Create.

Créez une politique SSL :

  1. Dans Politiques SSL, cliquez sur Ajouter.
  2. Dans Créer une politique SSL, attribuez un nom à la politique.
  3. Dans Action, sélectionnez l’action créée précédemment.
  4. Dans Expression Editor, entrez la règle à évaluer.
  5. Cliquez sur Create.

Créez ou ajoutez un serveur virtuel et une politique de liaison :

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Ajoutez ou sélectionnez un serveur virtuel.
  3. Dans Paramètres avancés, cliquez sur Stratégies SSL.
  4. Cliquez dans la section Politique SSL.
  5. Dans Sélectionner une stratégie, sélectionnez la politique que vous avez créée précédemment.
  6. Dans Policy Binding, spécifiez une priorité pour la politique.
  7. Dans Type, sélectionnez CLIENTHELLO_REQ.
  8. Cliquez sur Bind.
  9. Cliquez sur Terminé.

Dissocier un groupe de certificats CA à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Groupe de certificats d’autoritéde certification.
  2. Sélectionnez un groupe de certificats et cliquez sur Afficher les liaisons.
  3. Sélectionnez le certificat à supprimer du groupe et cliquez sur Dissocier.
  4. Si vous êtes invité à confirmer, cliquez sur **Oui••.
  5. Cliquez sur Fermer.

Supprimer un groupe de certificats CA à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Groupe de certificats d’autoritéde certification.
  2. Sélectionnez un groupe de certificats et cliquez sur Supprimer.
  3. Si vous y êtes invité, cliquez sur Oui.