Skip to main content
Cette page ne s’applique pas à ClickHouse Cloud. La fonctionnalité décrite ici n’est pas disponible dans les services ClickHouse Cloud. Consultez le guide ClickHouse Compatibilité Cloud pour plus d’informations.
Ce guide présente des paramètres simples et minimaux pour configurer l’authentification à l’aide de certificats utilisateur SSL. Ce tutoriel s’appuie sur le guide de configuration de TLS.
L’authentification des utilisateurs par SSL est prise en charge avec les interfaces https, native, mysql et postgresql.Les nœuds ClickHouse doivent avoir <verificationMode>strict</verificationMode> défini pour une authentification sécurisée (même si relaxed fonctionne à des fins de test).Si vous utilisez AWS NLB avec l’interface MySQL, vous devez demander au support AWS d’activer l’option non documentée suivante :
Je souhaite pouvoir configurer le proxy protocol v2 de notre proxy NLB comme suit : proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack.
1

Créer des certificats utilisateur SSL

Cet exemple utilise des certificats auto-signés avec une CA auto-signée. Pour les environnements de production, créez une CSR et soumettez-la à votre équipe PKI ou à votre fournisseur de certificats afin d’obtenir un certificat approprié.
  1. Générez une Certificate Signing Request (CSR) et une clé. Le format de base est le suivant :
    Dans cet exemple, nous l’utiliserons pour le domaine et l’utilisateur qui seront utilisés dans cet environnement d’exemple :
Le CN est arbitraire et n’importe quelle chaîne peut être utilisée comme identifiant pour le certificat. Il est utilisé lors de la création de l’utilisateur dans les étapes suivantes.
  1. Générez et signez le nouveau certificat utilisateur qui sera utilisé pour l’authentification. Le format de base est le suivant :
    Dans cet exemple, nous l’utiliserons pour le domaine et l’utilisateur qui seront utilisés dans cet environnement d’exemple :
2

Créer un utilisateur SQL et accorder des autorisations

Pour plus de détails sur la manière d’activer les utilisateurs SQL et de définir des rôles, consultez le guide d’utilisation Defining SQL Users and Roles.
  1. Créez un utilisateur SQL configuré pour utiliser l’authentification par certificat :
  2. Accordez des privilèges au nouvel utilisateur authentifié par certificat :
Dans cet exercice, l’utilisateur reçoit tous les privilèges d’administration à des fins de démonstration. Consultez la documentation RBAC de ClickHouse pour les paramètres d’autorisations.
Nous recommandons d’utiliser SQL pour définir les utilisateurs et les rôles. Cependant, si vous définissez actuellement les utilisateurs et les rôles dans des fichiers de configuration, l’utilisateur ressemblera à ceci :
3

Test

  1. Copiez le certificat utilisateur, la clé utilisateur et le certificat de la CA sur un nœud distant.
  2. Configurez OpenSSL dans la configuration du client de ClickHouse avec le certificat et les chemins correspondants.
  3. Exécutez clickhouse-client.
Notez que le mot de passe transmis à clickhouse-client est ignoré lorsqu’un certificat est spécifié dans la config.
4

Test HTTP

  1. Copiez le certificat utilisateur, la clé utilisateur et le certificat de la CA vers un nœud distant.
  2. Utilisez curl pour tester une commande SQL d’exemple. Le format de base est le suivant :
    Par exemple :
    La sortie sera similaire à ce qui suit :
Notez qu’aucun mot de passe n’est spécifié : le certificat est utilisé à la place d’un mot de passe, et c’est ainsi que ClickHouse authentifie l’utilisateur.

Résumé

Cet article a présenté les bases de la création et de la configuration d’un utilisateur pour l’authentification par certificat SSL. Cette méthode peut être utilisée avec clickhouse-client ou tout client prenant en charge l’interface https et permettant de définir des en-têtes HTTP. Le certificat et la clé générés doivent être conservés de façon sécurisée et avec un accès restreint, car le certificat sert à authentifier et à autoriser l’utilisateur pour des opérations sur la base de données ClickHouse. Traitez le certificat et la clé comme des mots de passe.
Dernière modification le 23 juillet 2026