Pular para o conteúdo principal
Esta página não se aplica ao ClickHouse Cloud. O recurso documentado aqui não está disponível nos serviços do ClickHouse Cloud. Consulte o guia Compatibilidade com Cloud do ClickHouse para mais informações.
Este guia apresenta configurações simples e mínas para configurar a autenticação com certificados SSL de usuário. O tutorial se baseia no guia Configurando TLS.
A autenticação de usuário com SSL é compatível ao usar as interfaces https, native, mysql e postgresql.Os nós do ClickHouse precisam ter <verificationMode>strict</verificationMode> definido para autenticação segura (embora relaxed funcione para fins de teste).Se você usar o AWS NLB com a interface MySQL, será necessário solicitar ao suporte da AWS que habilite a opção não documentada:
Gostaria de poder configurar o protocolo proxy v2 do nosso NLB como abaixo proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack.

1. Criar certificados SSL de usuário

Este exemplo usa certificados autoassinados com uma CA autoassinada. Para ambientes de produção, crie uma CSR e envie-a para sua equipe de PKI ou para o provedor de certificados a fim de obter um certificado adequado.
  1. Gere uma Certificate Signing Request (CSR) e uma chave. O formato básico é o seguinte:
    Neste exemplo, usaremos isto para o domínio e o usuário que serão usados neste ambiente de exemplo:
O CN é arbitrário, e qualquer string pode ser usada como identificador do certificado. Ele é usado ao criar o usuário nas etapas a seguir.
  1. Gere e assine o novo certificado de usuário que será usado para autenticação. O formato básico é o seguinte:
    Neste exemplo, usaremos isto para o domínio e o usuário que serão usados neste ambiente de exemplo:

2. Criar um usuário SQL e conceder permissões

Para saber como habilitar usuários SQL e definir roles, consulte o guia Defining SQL Users and Roles.
  1. Crie um usuário SQL configurado para usar autenticação por certificado:
  2. Conceda privilégios ao novo usuário com certificado:
Neste exercício, o usuário recebe privilégios administrativos totais apenas para fins de demonstração. Consulte a documentação de RBAC do ClickHouse para ver as configurações de permissões.
Recomendamos usar SQL para definir usuários e roles. No entanto, se você estiver definindo usuários e roles em arquivos de configuração, o usuário ficará assim:

3. Teste

  1. Copie o certificado do usuário, a chave do usuário e o certificado da CA para um nó remoto.
  2. Configure o OpenSSL na configuração do cliente do ClickHouse com o certificado e os caminhos.
  3. Execute o clickhouse-client.
Observe que a senha fornecida ao clickhouse-client é ignorada quando um certificado é especificado na configuração.

4. Testando HTTP

  1. Copie o certificado do usuário, a chave do usuário e o certificado da CA para um nó remoto.
  2. Use o curl para testar um comando SQL de exemplo. O formato básico é:
    Por exemplo:
    A saída será semelhante à seguinte:
Observe que nenhuma senha foi especificada; o certificado é usado no lugar da senha e é assim que o ClickHouse autenticará o usuário.

Resumo

Este artigo apresentou os conceitos básicos para criar e configurar um usuário para autenticação por certificado SSL. Esse método pode ser usado com clickhouse-client ou qualquer cliente que ofereça suporte à interface https e no qual seja possível definir cabeçalhos HTTP. O certificado e a chave gerados devem ser mantidos em sigilo e com acesso limitado, já que o certificado é usado para autenticar e autorizar o usuário a realizar operações no banco de dados do ClickHouse. Trate o certificado e a chave como se fossem senhas.
Última modificação em 10 de junho de 2026