Skip to main content
Эта страница не применима к ClickHouse Cloud. Описанная здесь возможность недоступна в сервисах ClickHouse Cloud. Дополнительные сведения см. в руководстве ClickHouse Cloud Compatibility.
В этом руководстве приведены простые минимальные настройки для аутентификации с помощью пользовательских SSL-сертификатов. Оно основано на руководстве «Настройка TLS».
Аутентификация пользователей по SSL поддерживается при использовании интерфейсов https, native, mysql и postgresql.Для безопасной аутентификации на узлах ClickHouse должен быть задан параметр <verificationMode>strict</verificationMode> (хотя для тестирования подойдет и relaxed).Если вы используете AWS NLB с интерфейсом MySQL, обратитесь в поддержку AWS, чтобы включить следующую недокументированную опцию:
Я хочу иметь возможность настроить proxy protocol v2 для NLB следующим образом: proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack.
1

Создайте SSL-сертификаты пользователя

В этом примере используются самоподписанные сертификаты с самоподписанным CA. Для рабочей среды создайте CSR и отправьте его вашей команде PKI или поставщику сертификатов, чтобы получить корректный сертификат.
  1. Сгенерируйте запрос на подпись сертификата (CSR) и ключ. Базовый формат выглядит следующим образом:
    В этом примере мы используем следующие домен и пользователя для этой тестовой среды:
Значение CN произвольно, и в качестве идентификатора сертификата можно использовать любую строку. Оно используется при создании пользователя на следующих шагах.
  1. Сгенерируйте и подпишите новый сертификат пользователя, который будет использоваться для аутентификации. Базовый формат выглядит следующим образом:
    В этом примере мы используем следующие домен и пользователя для этой тестовой среды:
2

Создайте SQL-пользователя и выдайте разрешения

Подробные сведения о том, как включить SQL-пользователей и назначить роли, см. в руководстве Defining SQL Users and Roles.
  1. Создайте SQL-пользователя, настроенного на аутентификацию по сертификату:
  2. Выдайте привилегии новому пользователю с сертификатом:
В этом упражнении пользователю выданы полные права администратора в демонстрационных целях. Сведения о настройках разрешений см. в документации ClickHouse по RBAC.
Мы рекомендуем использовать SQL для определения пользователей и ролей. Однако если сейчас вы определяете пользователей и роли в конфигурационных файлах, пользователь будет выглядеть так:
3

Проверка

  1. Скопируйте сертификат пользователя, ключ пользователя и CA‑сертификат на удалённый узел.
  2. Настройте OpenSSL в конфигурации клиента ClickHouse, указав сертификат и пути к файлам.
  3. Запустите clickhouse-client.
Обратите внимание, что пароль, переданный в clickhouse-client, игнорируется, если в конфигурации указан сертификат.
4

Проверка HTTP

  1. Скопируйте сертификат пользователя, ключ пользователя и CA‑сертификат на удалённый узел.
  2. Используйте curl, чтобы протестировать пример SQL-команды. Базовый формат выглядит следующим образом:
    Например:
    Вывод будет примерно следующим:
Обратите внимание, что пароль не указан: вместо него используется сертификат — так ClickHouse аутентифицирует пользователя.

Итоги

В этой статье были рассмотрены основы создания и настройки пользователя для аутентификации по SSL-сертификату. Этот метод можно использовать с clickhouse-client или любыми клиентами, которые поддерживают интерфейс https и позволяют задавать HTTP-заголовки. Сгенерированные сертификат и ключ следует хранить в тайне и ограничить к ним доступ, поскольку сертификат используется для аутентификации и авторизации пользователя при выполнении операций в базе данных ClickHouse. Обращайтесь с сертификатом и ключом так же, как с паролями.
Последнее изменение 23 июля 2026 г.