SSL 'strict' 选项 会对传入连接强制执行证书验证。在这种情况下,只有使用受信任证书的连接才能建立;使用不受信任证书的连接将被拒绝。因此,证书验证可用于对传入连接进行唯一身份验证。证书中的 Common Name 或 subjectAltName extension 字段用于标识连接的用户。subjectAltName extension 支持在服务器配置中使用一个通配符 '*'。这样可以将多个证书关联到同一用户。此外,重新签发或吊销证书也不会影响 ClickHouse 配置。
要启用 SSL 证书身份验证,必须在设置文件 users.xml 中为每个 ClickHouse 用户指定一组 Common Name 或 Subject 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>
<!-- More names -->
</ssl_certificates>
<!-- Other settings -->
</user_name_1>
<user_name_2>
<ssl_certificates>
<subject_alt_name>DNS:host.domain.com</subject_alt_name>
<!-- More names -->
</ssl_certificates>
<!-- Other settings -->
</user_name_2>
<user_name_3>
<ssl_certificates>
<!-- Wildcard support -->
<subject_alt_name>URI:spiffe://foo.com/*/bar</subject_alt_name>
</ssl_certificates>
</user_name_3>
</users>
</clickhouse>