跳到主要内容
跳到主要内容

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' option 会对传入连接启用强制证书验证。在这种情况下,只能建立使用受信任证书的连接,使用不受信任证书的连接将被拒绝。因此,通过证书验证可以对传入连接进行唯一标识和认证。证书中的 Common NamesubjectAltName extension 字段用于标识已连接的用户。subjectAltName extension 在服务器配置中支持使用一个通配符 '*',这允许将多个证书关联到同一用户。此外,重新签发和吊销证书不会影响 ClickHouse 的配置。

要启用 SSL 证书认证,必须在配置文件 users.xml 中为每个 ClickHouse 用户指定 Common NameSubject Alt Name 的列表:

示例

<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 参数。