Configurer l’insertion d’en-tête SSL

Étant donné que l’appliance Citrix ADC décharge tous les traitements SSL des serveurs, les serveurs reçoivent uniquement du trafic HTTP. Dans certaines circonstances, le serveur a besoin de certaines informations SSL. Par exemple, les audits de sécurité des transactions SSL récentes exigent que le nom du sujet client (contenu dans un certificat X509) soit enregistré sur le serveur.

Ces données peuvent être envoyées au serveur en les insérant dans l’en-tête HTTP en tant que paire nom-valeur. Vous pouvez insérer le certificat client entier, si nécessaire, un hachage (également appelé empreinte digitale ou empreinte digitale) de l’intégralité du certificat client, ou seulement les champs spécifiques du certificat, tels que l’objet, le numéro de série, l’émetteur, la signature, l’ID de session SSL, la suite de chiffrement ou la date non antérieure ou non postérieure utilisé pour déterminer la validité du certificat.

Vous pouvez activer l’insertion SSL pour les serveurs et services virtuels SSL basés sur HTTP uniquement. Vous ne pouvez pas l’appliquer aux serveurs et services virtuels SSL basés sur TCP. En outre, l’authentification du client doit être activée sur le serveur virtuel SSL, car les valeurs insérées proviennent du certificat client qui est présenté au serveur virtuel pour l’authentification.

Pour configurer l’insertion d’en-tête SSL, créez d’abord une action SSL pour chaque ensemble spécifique d’informations à insérer, puis créez des stratégies qui identifient les connexions pour lesquelles vous souhaitez insérer les informations. Lorsque vous créez chaque stratégie, spécifiez l’action que vous souhaitez associer à la stratégie. Ensuite, liez les stratégies aux serveurs virtuels SSL qui recevront le trafic SSL.

L’exemple suivant utilise des stratégies de syntaxe par défaut. Dans l’exemple suivant, une stratégie de contrôle (ctrlpol) est créée pour effectuer l’authentification du client si une requête est reçue pour l’URL /testsite/file5.html. Une stratégie de données (datapol) est créée pour effectuer une action (act1) si l’authentification client est réussie, et une action SSL (act1) est ajoutée pour insérer les détails du certificat et le nom de l’émetteur dans la demande avant de transférer la demande. Pour les autres URL, l’authentification du client est désactivée. Les stratégies sont ensuite liées à un serveur virtuel SSL (ssl_vserver) qui reçoit le trafic SSL.

Exemple de ligne de commande de configuration de l’insertion d’en-tête SSL

Exemple :

add ssl action act1 -clientCert ENABLED -certHeader mycert -clientcertissuer ENABLED -certIssuerHeader myissuer

add ssl policy datapol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action act1

add ssl policy ctrlpol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action CLIENTAUTH

bind ssl vserver ssl_vserver -policyName ctrlpol -priority 1

bind ssl vserver ssl_vserver -policyName datapol -priority 1

Done

Configurer l’insertion d’en-tête basée sur SSL à l’aide de l’interface graphique

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

  2. Dans le volet d’informations, sous l’onglet Actions, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Créer une action SSL, définissez les paramètres suivants :

    • Nom*
    • Certificat client
    • Étiquette de certificat
    • Émetteur de certificat client
    • Étiquette de l’émetteur

    * Paramètre obligatoire

  4. Cliquez sur Créer, puis sur Fermer.

  5. Dans l’onglet, cliquez sur Ajouter pour créer une stratégie de contrôle.

  6. Dans la boîte de dialogue Créer une stratégie SSL, définissez les paramètres suivants :

    • Nom*
    • Expression.
    • Demander une action

    * Paramètre obligatoire

  7. Cliquez sur Créer, puis sur Fermer.

  8. Créez une stratégie de données en répétant les étapes 5 à 7.

  9. Dans le volet de navigation, développez Déchargement SSL, puis cliquez sur Serveurs virtuels.

  10. Dans le volet d’informations, dans la liste des serveurs virtuels, sélectionnez le serveur virtuel auquel vous souhaitez lier les stratégies SSL, puis cliquez sur Ouvrir.

  11. Dans la boîte de dialogue Configurer le serveur virtuel (Déchargement SSL), cliquez sur Paramètres SSL, puis sur Stratégies SSL.

  12. Dans la boîte de dialogue Lier/dissocier les stratégies SSL, cliquez sur Insérer une stratégie. Sous Nom de la stratégie, sélectionnez la stratégie que vous avez créée dans les étapes 5 à 7.

  13. Cliquez sur OK, puis sur Fermer. Un message apparaît dans la barre d’état indiquant que la stratégie a été liée avec succès.

  14. Répétez les étapes 12 et 13 et sélectionnez la stratégie que vous avez créée à l’étape 8.

Configurer une action de stratégie SSL pour insérer l’empreinte numérique du certificat client dans l’en-tête HTTP

Les appliances Citrix ADC prennent désormais en charge l’insertion de l’empreinte numérique (également appelée empreinte digitale) d’un certificat dans l’en-tête d’une requête envoyée à un serveur principal. Si l’authentification du client est activée, l’appliance calcule l’empreinte numérique du certificat et utilise une action de stratégie SSL pour insérer l’empreinte numérique dans la demande. Le serveur recherche l’empreinte numérique et accorde un accès sécurisé s’il y a une correspondance.

Vous devez configurer une action SSL pour activer l’empreinte digitale du certificat client, spécifier un nom d’en-tête pour insérer l’empreinte digitale du certificat client et un résumé (valeur de hachage) pour calculer la valeur de l’empreinte digitale. L’appliance Citrix ADC prend en charge les digestes SHA1 et SHA2 (SHA224, SHA256, SHA384, SHA512). L’appliance déduit la valeur de l’empreinte digitale en calculant le résumé spécifié du codage DER du certificat client. Ensuite, créez une stratégie SSL spécifiant cette action et liez la stratégie à un serveur virtuel SSL.

Configurer une action SSL pour insérer l’empreinte numérique du certificat client à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

add ssl action <name> -clientCertFingerprint ( ENABLED | DISABLED ) -certFingerprintHeader <string> -certFingerprintDigest <certFingerprintDigest>

Arguments :

clientCertFingerprint:

Insérez l’empreinte digitale du certificat dans l’en-tête HTTP de la requête envoyée au serveur Web. L’empreinte digitale est dérivée en calculant la valeur de hachage spécifiée (SHA256, par exemple) du codage DER du certificat client.

certFingerprintHeader:

Nom de l’en-tête dans lequel insérer l’empreinte digitale du certificat client.

certFingerprintDigest:

Algorithme de synthèse utilisé pour calculer l’empreinte digitale du certificat client.

Valeurs possibles : SHA1, SHA224, SHA256, SHA384, SHA512

Exemple :

add ssl action act1 -clientcertfingerprint ENABLED -certfingerprintdigest SHA1 -certfingerprintheader example
Done
sh ssl action act1
    1)      Name: act1
            Type: Data Insertion
            Cert Fingerprint Header: ENABLED
            Cert-Fingerprint Tag: example
            Cert-Fingerprint Digest Algorithm: SHA1
            Hits: 0
            Undef Hits: 0
            Action Reference Count: 0
Done
add ssl policy pol1 -rule true -action act1
Done
bind ssl vserver v1 -policyName pol1 -priority 10
Done
sh ssl vserver v1

            Advanced SSL configuration for VServer v1:
            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: DISABLED
            OCSP Stapling: DISABLED
            SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: DISABLED  TLSv1.1: ENABLED  TLSv1.2: DISABLED
            Push Encryption Trigger: Always
            Send Close-Notify: YES

            ECC Curve: P_256, P_384, P_224, P_521

    1)      CertKey Name: intca6    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    2)      CertKey Name: intca5    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    3)      CertKey Name: intca4    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    4)      CertKey Name: intca3    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    5)      CertKey Name: intca2    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    6)      CertKey Name: intca1    CA Certificate          CRLCheck: Mandatory             CA_Name Sent

            Data policy
    1)      Policy Name: pol1       Priority: 10

    1)      Cipher Name: DEFAULT
            Description: Default cipher list with encryption strength >= 128bit
    Done

Configurer une action SSL pour insérer l’empreinte numérique du certificat client à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Stratégies.
  2. Dans le volet d’informations, sélectionnez l’onglet Actions SSL, puis cliquez sur Ajouter.
  3. Dans la boîte de dialogue Créer une action SSL, définissez les paramètres suivants :
    • Nom*
    • Impression digitale du certificat client
    • Étiquette d’empreinte digitale
    • Digest d’empreintes digitales *Paramètre obligatoire
  4. Cliquez sur Créer.
  5. Sélectionnez l’onglet Stratégies SSL, puis cliquez sur Ajouter.
  6. Dans la boîte de dialogue Créer une stratégie SSL, définissez les paramètres suivants :
    • Nom*
    • Action
    • Expression *Paramètre obligatoire
  7. Cliquez sur Créer.
  8. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  9. Dans le volet d’informations, dans la liste des serveurs virtuels SSL, sélectionnez le serveur virtuel auquel vous souhaitez lier la stratégie SSL, puis cliquez sur Modifier.
  10. Dans Paramètres avancés, cliquez sur Stratégies SSL.
  11. Cliquez sous Stratégie SSL, puis dans la boîte de dialogue Liaison de stratégie, sélectionnez la stratégie créée précédemment et affectez une priorité.
  12. Cliquez sur Bind.