Authentification client ou Mutual TLS (MTLS)
Dans une transaction SSL classique, 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. Toutefois, il peut arriver que vous souhaitiez configurer le serveur pour authentifier le client qui s’y connecte.
Remarque : À partir de la version 13.0 build 41.x, l’appliance Citrix ADC prend en charge les messages de demande de certificat 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 lors de l’établissement de liaison SSL. L’appliance vérifie que le certificat présenté par le client est soumis à des contraintes normales, telles que la signature de l’émetteur et la date d’expiration.
Remarque Pour que
l’appliance puisse vérifier les signatures de l’émetteur, le certificat de l’autorité de certification qui a émis le certificat client doit être :
- Installé sur l’appareil.
- 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. Mais si le certificat n’est pas valide, l’appliance abandonne la demande du client lors de l’établissement de la liaison 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 du client (par exemple, Verisign). Le certificat d’autorité de certification racine peut contenir un ou plusieurs certificats d’autorité de certification intermédiaires (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. Activez ensuite l’authentification du 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 sur l’appliance.
Remarque : Une appliance Citrix ADC MPX prend en charge une taille de paire de clés de certificat comprise entre 512 bits et 4 096 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 attribuée à une instance VPX, la prise en charge de la taille de la 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.
Un dispositif virtuel 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 CA 4096 bits
- Certificat 4096 bits sur le serveur physique
Remarque : À partir de la version 13.0 build 79.x, l’authentification du client avec un certificat client RSA 4096 bits est prise en charge lors d’une négociation SSL sur la plate-forme VPX.
Remarques :
- Pour connaître les limitations MPX FIPS, consultez Limitations MPX FIPS.
- Pour connaître les limitations SDX FIPS, reportez-vous à la section Limitations FIPS SDX.
Fournir le certificat client
Avant de configurer l’authentification du client, un certificat client valide doit être installé sur le client. Un certificat client inclut des informations 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 ne doit être utilisé que par un seul système client.
Que vous obteniez le certificat client auprès d’une autorité de certification, que vous utilisiez un certificat client existant ou que vous génériez un certificat client sur l’appliance Citrix ADC, vous devez convertir le certificat au format approprié. 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 l’avoir transféré vers le système client, assurez-vous qu’il est installé sur ce système et configuré pour l’application cliente. L’application, telle qu’un navigateur Web, doit faire partie des transactions SSL.
Pour obtenir des instructions sur la façon de convertir un certificat du format PEM ou DER au format PKCS #12, voir Importer et convertir des fichiers SSL.
Pour obtenir des instructions sur la façon de générer 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 poursuivent sans authentifier le client. Vous pouvez configurer l’authentification du client pour qu’elle soit facultative ou obligatoire dans le cadre de l’établissement de liaison 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 à l’établissement de 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 modifier la vérification d’authentification basée sur le certificat client sur facultative.
Remarque : L’authentification du client est configurée pour des serveurs virtuels SSL individuels, et non globalement.
Activer l’authentification basée sur le certificat client à l’aide de la CLI
À 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>
<!--NeedCopy-->
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
<!--NeedCopy-->
Activer l’authentification basée sur le certificat client à l’aide de l’interface graphique
- Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis ouvrez un serveur virtuel.
- Dans la section Paramètres SSL, sélectionnez Authentification client, puis 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. En d’autres termes, 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
À 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
<!--NeedCopy-->
Ignorer la vérification de l’extension de stratégie lors de l’authentification du client à l’aide
- Accédez à Système > Profils > ProfilsSSL.
- Créez un nouveau profil frontal ou modifiez un profil frontal existant.
- Vérifiez que l’authentification du client est activée et que le certificat client est défini sur obligatoire.
- Sélectionnez Ignorer la vérification de stratégie de certificat client
Lier 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 du client. Liez ce certificat au serveur virtuel Citrix ADC qui effectue l’authentification du client.
Liez le certificat d’autorité de certification au serveur virtuel SSL de telle sorte 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 passe la commande appropriée 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, voir 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, voir Créer une chaîne de certificats.
Contrôle plus strict de la validation des certificats clients
L’appliance Citrix ADC accepte les certificats d’autorité de certification intermédiaire valides s’ils sont émis par une seule autorité de certification racine. En d’autres termes, si seul le certificat d’autorité de certification racine est lié au serveur virtuel et que l’autorité de certification racine valide tout certificat intermédiaire envoyé avec le certificat client, l’appliance fait confiance à la chaîne de certificats et l’établissement de liaison 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 prise de contact est réussie. Dans le cadre de l’établissement de la liaison, 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 connexion échoue si l’un des certificats d’autorité de certification liés au serveur virtuel n’a pas signé le certificat client.
Par exemple, disons que deux certificats clients, clientcert1 et clientcert2, sont signés par les certificats intermédiaires int-CA-A et int-CA-B, respectivement. 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 n’accepte que clientcert1.
Contrôle plus strict de la validation des certificats clients à l’aide de l’interface de ligne de commande
À l’invite de commandes, tapez :
set ssl profile <name> -ClientAuthUseBoundCAChain Enabled
<!--NeedCopy-->
Permettre un contrôle plus strict sur la validation des certificats clients à l’aide de l’interface graphique
- Accédez à Système > Profils, sélectionnez l’onglet Profils SSL et créez un profil SSL ou sélectionnez un profil existant.
- Sélectionnez Activer l’authentification client à l’aide de la chaîne de certification liée.