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

SSL X.509 证书身份验证

Not supported in ClickHouse Cloud
注意

本页面不适用于 ClickHouse Cloud。此处介绍的功能在 ClickHouse Cloud 服务中不可用。 有关更多信息,请参阅 ClickHouse 的 Cloud Compatibility 指南。

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