Перейти к основному содержанию
Перейти к основному содержанию

Аутентификация по SSL-сертификату X.509

Not supported in ClickHouse Cloud
Примечание

This page is not applicable to ClickHouse Cloud. The feature documented here is not available in ClickHouse Cloud services. See the ClickHouse Cloud Compatibility guide for more information.

Параметр SSL 'strict' включает обязательную проверку сертификатов для входящих подключений. В этом случае могут быть установлены только соединения с доверенными сертификатами. Подключения с недоверенными сертификатами будут отклонены. Таким образом, проверка сертификатов позволяет однозначно аутентифицировать входящее подключение. Для идентификации подключенного пользователя используется поле сертификата Common Name или расширение subjectAltName. Расширение subjectAltName поддерживает использование одного подстановочного символа '*' в конфигурации сервера. Это позволяет связать несколько сертификатов с одним и тем же пользователем. Кроме того, перевыпуск и отзыв сертификатов не влияет на конфигурацию ClickHouse.

Чтобы включить аутентификацию по SSL-сертификату, в файле настроек users.xml должен быть указан список значений полей Common Name или Subject Alt Name для каждого пользователя ClickHouse:

Пример

<clickhouse>
    <!- ... -->
    <users>
        <user_name_1>
            <ssl_certificates>
                <common_name>host.domain.com:example_user</common_name>
                <common_name>host.domain.com:example_user_dev</common_name>
                <!-- Дополнительные имена -->
            </ssl_certificates>
            <!-- Прочие настройки -->
        </user_name_1>
        <user_name_2>
            <ssl_certificates>
                <subject_alt_name>DNS:host.domain.com</subject_alt_name>
                <!-- Дополнительные имена -->
            </ssl_certificates>
            <!-- Прочие настройки -->
        </user_name_2>
        <user_name_3>
            <ssl_certificates>
                <!-- Поддержка масок -->
                <subject_alt_name>URI:spiffe://foo.com/*/bar</subject_alt_name>
            </ssl_certificates>
        </user_name_3>
    </users>
</clickhouse>

Чтобы SSL-цепочка доверия (chain of trust) работала корректно, также важно убедиться, что параметр caConfig настроен правильно.