Authentification client

Dans une transaction SSL typique, le client qui se connecte à un serveur via une connexion sécurisée vérifie la validité du serveur. Pour ce faire, il vérifie le certificat du serveur avant d’initier la transaction SSL. Cependant, vous pouvez parfois vouloir configurer le serveur pour authentifier le client qui se connecte à lui.

Remarque : à partir de la version 13.0 build 41.x, l’appliance Citrix ADC prend en charge les messages de demande de certificat qui sont fragmentés en plusieurs enregistrements à condition que la taille totale soit inférieure à 32 Ko. Auparavant, la taille maximale prise en charge était de 16 Ko et la fragmentation n’était pas prise en charge.

Lorsque l’authentification client est activée sur un serveur virtuel SSL, l’appliance Citrix ADC demande le certificat client pendant la poignée de main SSL. L’appliance vérifie que le certificat présenté par le client ne présente pas de contraintes normales, telles que la signature de l’émetteur et la date d’expiration.

Remarque : pour que l’appliance vérifie les signatures de l’émetteur, le certificat de l’autorité de certification qui a émis le certificat client doit être installé sur l’appliance et lié au serveur virtuel avec lequel le client effectue des transactions.

Si le certificat est valide, l’appliance autorise le client à accéder à toutes les ressources sécurisées. Toutefois, si le certificat n’est pas valide, l’appliance supprime la demande client pendant la poignée de main SSL.

L’appliance vérifie le certificat client en formant d’abord une chaîne de certificats, en commençant par le certificat client et en terminant par le certificat d’autorité de certification racine pour le client (par exemple, Verisign). Le certificat d’autorité de certification racine peut contenir un ou plusieurs certificats d’autorité de certification intermédiaire (si l’autorité de certification racine n’émet pas directement le certificat client).

Avant d’activer l’authentification client sur l’appliance Citrix ADC, assurez-vous qu’un certificat client valide est installé sur le client. Ensuite, activez l’authentification client pour le serveur virtuel qui gère les transactions. Enfin, liez le certificat de l’autorité de certification qui a émis le certificat client au serveur virtuel de l’appliance.

Remarque : Une appliance Citrix ADC MPX prend en charge une paire de clés de certificat de 512 bits à 4096 bits. Le certificat doit être signé à l’aide de l’un des algorithmes de hachage suivants :

  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512

Sur une appliance SDX, si une puce SSL est affectée à une instance VPX, la prise en charge de la taille de paire de clés de certificat d’une appliance MPX s’applique. Sinon, la prise en charge normale de la taille de paire de clés de certificat d’une instance VPX s’applique.

Une appliance virtuelle Citrix ADC (instance VPX) prend en charge les certificats d’au moins 512 bits, jusqu’aux tailles suivantes :

  • Certificat de serveur 4096 bits sur le serveur virtuel
  • Certificat client 4096 bits sur le service
  • Certificat d’autorité de certification 4096 bits
  • Certificat 4096 bits sur le serveur physique
  • Certificat client 2048 bits (si l’authentification client est activée sur le serveur virtuel)

Remarques :

  • Pour connaître les limitations MPX FIPS, reportez-vous à la section Limites MPX FIPS.
  • Pour connaître les limitations SDX FIPS, reportez-vous à la section Limitations SDX FIPS.

Fournir le certificat client

Avant de configurer l’authentification client, un certificat client valide doit être installé sur le client. Un certificat client inclut des détails sur le système client spécifique qui crée des sessions sécurisées avec l’appliance Citrix ADC. Chaque certificat client est unique et doit être utilisé par un seul système client.

Que vous obteniez le certificat client d’une autorité de certification, utilisiez un certificat client existant ou génériez un certificat client sur l’appliance Citrix ADC, vous devez convertir le certificat au format correct. Sur l’appliance Citrix ADC, les certificats sont stockés au format PEM ou DER et doivent être convertis au format PKCS #12 avant d’être installés sur le système client. Après avoir converti le certificat et le transférer vers le système client, assurez-vous qu’il est installé sur ce système et configuré pour l’application cliente qui fera partie des transactions SSL (par exemple, le navigateur Web).

Pour obtenir des instructions sur la conversion d’un certificat au format PEM ou DER au format PKCS #12, reportez-vous à la section Importer et convertir des fichiers SSL.

Pour obtenir des instructions sur la génération d’un certificat client, reportez-vous à la section Créer un certificat.

Activer l’authentification basée sur le certificat client

Par défaut, l’authentification du client est désactivée sur l’appliance Citrix ADC, et toutes les transactions SSL se déroulent sans authentifier le client. Vous pouvez configurer l’authentification client pour qu’elle soit facultative ou obligatoire dans le cadre de la poignée de main SSL.

Si l’authentification du client est facultative, l’appliance demande le certificat client mais procède à la transaction SSL même si le client présente un certificat non valide. Si l’authentification du client est obligatoire, l’appliance met fin à la liaison SSL si le client SSL ne fournit pas de certificat valide.

Attention : Citrix vous recommande de définir des stratégies de contrôle d’accès appropriées avant de changer la vérification d’authentification basée sur le certificat client en option.

Remarque : l’authentification client est configurée pour les serveurs virtuels SSL individuels, et non globalement.

Activer l’authentification basée sur le certificat client à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour activer l’authentification basée sur le certificat client et vérifier la configuration :

set ssl vserver <vServerName> [-clientAuth (ENABLED | DISABLED)] [-clientCert (MANDATORY | OPTIONAL)]
show ssl vserver <vServerName>

Exemple :

set ssl vserver vssl -clientAuth ENABLED -clientCert Mandatory
Done
show ssl vserver vssl

Advanced SSL configuration for VServer vssl:
DH: 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
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.2: ENABLED TLSv1.2: ENABLED

1) CertKey Name: sslckey Server Certificate

1) Policy Name: client_cert_policy Priority: 0

1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done

Activer l’authentification basée sur le certificat client à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels et ouvrez un serveur virtuel.
  2. Dans la section Paramètres SSL, sélectionnez Authentification client et, dans la liste Certificat client, sélectionnez Obligatoire.

Remarque :

Si l’authentification du client est définie sur obligatoire et si le certificat client contient des extensions de stratégie, la validation du certificat échoue. À partir de la version 12.0-56.x, vous pouvez définir un paramètre dans le profil SSL frontal pour ignorer cette vérification. Le paramètre est désactivé par défaut. Autrement dit, la vérification est effectuée par défaut.

Ignorer la vérification de l’extension de stratégie lors de l’authentification du client à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile ns_default_ssl_profile_frontend -clientauth ENABLED -skipClientCertPolicyCheck ENABLED

Parameter

skipClientCertPolicyCheck

              Control policy extension check, if present inside the X509 certificate chain. Applicable only if client authentication is enabled and client certificate is set to mandatory. Possible values functions as follows:

- ENABLED: Skip the policy check during client authentication.

- DISABLED: Perform policy check during client authentication.

Possible values: ENABLED, DISABLED

Default: DISABLED

Ignorer la vérification de l’extension de stratégie lors de l’authentification du client à l’aide de l’interface graphique

  1. Accédez à Système > Profils > Profils SSL.
  2. Créez un nouveau profil frontal ou modifiez un profil frontal existant.
  3. Vérifiez que l’authentification client est activée et que le certificat client est défini sur obligatoire.
  4. Sélectionnez Ignorer la vérification de stratégie de certificat client.

Ignorer la vérification de la stratégie de certificat

Liez les certificats d’autorité de certification au serveur virtuel

Une autorité de certification dont le certificat est présent sur l’appliance Citrix ADC doit émettre le certificat client utilisé pour l’authentification client. Liez ce certificat au serveur virtuel Citrix ADC qui effectue l’authentification du client.

Liez le certificat de l’autorité de certification au serveur virtuel SSL de manière à ce que l’appliance puisse former une chaîne de certificats complète lorsqu’elle vérifie le certificat client. Sinon, la formation de la chaîne de certificats échoue et le client se voit refuser l’accès même si son certificat est valide.

Vous pouvez lier des certificats d’autorité de certification au serveur virtuel SSL dans n’importe quel ordre. L’appliance effectue l’ordre approprié lors de la vérification du certificat client.

Par exemple, si le client présente un certificat émis par CA_A, où CA_A est uneautorité de certification intermédiaire dont le certificat est émis par CA_B, dont le certificat est à son tour émis par une autorité de certification racine approuvée, Root_CA, une chaîne de certificats contenant ces trois certificats doivent être liés au serveur virtuel sur l’appliance Citrix ADC.

Pour obtenir des instructions sur la liaison d’un ou de plusieurs certificats au serveur virtuel, reportez-vous à la section Lier la paire de clés de certificat au serveur virtuel SSL.

Pour obtenir des instructions sur la création d’une chaîne de certificats, reportez-vous à la section Créer une chaîne de certificats.

Contrôle plus strict de la validation des certificats clients

L’appliance Citrix ADC accepte les certificats CA intermédiaire valides s’ils sont émis par une seule CA racine. Autrement dit, si seul le certificat racine CA est lié au serveur virtuel et que tout certificat intermédiaire envoyé avec le certificat client est validé par ce certificat racine, l’appliance approuve la chaîne de certificats et la négociation réussit.

Toutefois, si un client envoie une chaîne de certificats dans la négociation, aucun des certificats intermédiaires ne peut être validé à l’aide d’un répondeur CRL ou OCSP, sauf si ce certificat est lié au serveur virtuel SSL. Par conséquent, même si l’un des certificats intermédiaires est révoqué, la négociation est réussie. Dans le cadre de la poignée de main, le serveur virtuel SSL envoie la liste des certificats d’autorité de certification qui lui sont liés. Pour un contrôle plus strict, vous pouvez configurer le serveur virtuel SSL pour qu’il accepte uniquement un certificat signé par l’un des certificats d’autorité de certification liés à ce serveur virtuel. Pour ce faire, vous devez activer le paramètre ClientAuthUseBoundCAChain dans le profil SSL lié au serveur virtuel. La poignée de main échoue si le certificat client n’est pas signé par l’un des certificats d’autorité de certification liés au serveur virtuel.

Par exemple, deux certificats clients, clientcert1 et clientcert2, sont signés respectivement par les certificats intermédiaires Int-CA-A et Int-CA-B. Les certificats intermédiaires sont signés par le certificat racine Root-CA. Int-CA-A et Root-CA sont liés au serveur virtuel SSL. Dans le cas par défaut (ClientAuthUseBoundCAChain désactivé), clientcert1 et clientcert2 sont acceptés. Toutefois, si ClientAuthUseBoundCAChain est activé, l’appliance Citrix ADC accepte uniquement clientcert1.

Activer un contrôle plus strict sur la validation des certificats client à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile <name> -ClientAuthUseBoundCAChain Enabled

Activer un contrôle plus strict sur la validation du certificat client à l’aide de l’interface graphique

  1. Accédez à Système > Profils, sélectionnez l’onglet Profils SSL et créez un profil SSL ou sélectionnez un profil existant.
  2. Sélectionnez Activer l’authentification client à l’aide de la chaîne de certification liée.