ClickHouse部署全攻略——安全配置

本文档详细介绍了ClickHouse的部署安全配置,包括启用OpenSSL、修改通信端口为安全端口、用户配置以及日志记录。重点讲解了如何生成SSL证书、禁用默认端口并改为HTTPS、设置SSL通信端口,以及客户端和工具的访问配置。建议操作前谨慎修改配额。

目录

Quotas:配额修改(暂不建议修改)

User settings:用户配置

以rsyslog形式写入系统日志

直接发送到rsyslog接收服务端(不推荐)

留存本地,是否发送由rsyslog统一制定(推荐)

启用openSSL安全协议

为clickhouse生成秘钥交换协议文件(每台主机各自生成)

为集群生成自签名证书(各主机证书不通用)(推荐)

为集群生成自签名证书(通用证书)

修改所有通信端口、访问端口为安全端口

禁用 MySQL 和 PostgreSQL 的默认仿真端口

修改HTTP图形界面端口为HTTPS协议端口

 修改TCP客户端通信端口为基于SSL协议安全通通信端口

修改服务器之间交换数据通信端口为基于SSL协议安全通通信端口

设置监听外部端口

使用证书和路径配置OpenSSL

修改副本间通信端口及开启SSL协议安全通道

修改keeper_server与client之间的SSL连接的安全端口

修改客户端配置文件

重启服务并开放防火墙

升级安全通信后的各工具访问

客户端访问

页面访问

4LW命令使用

 DBeaver工具访问


Quotas:配额修改(暂不建议修改)

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/users.xml
  • 找到quotas选项并修改如下红色标注部分
          <interval>
                <!-- Length of interval. -->
                <duration>3600</duration>
                <!-- No limits. Just calculate resource usage for time interval. -->
                <queries>0</queries>
                <errors>1000</errors>
                <result_rows>0</result_rows>
                <read_rows>0</read_rows>
                <execution_time>0</execution_time>
            </interval>
        </default>
    </quotas>

 即:仅将默认的<errors>时间周期内允许的异常总数,修改为1000即可。

User settings:用户配置

  • 进入配置文件目录,编辑users.xml配置文件
vim /etc/clickhouse-server/users.xml
  • 分别为默认default用户及日常使用用户获取密码字符串。建议使用SHA256
#获取default用户SHA256密码字符串:
echo -n "XXXXXX"|sha256sum|tr -d '-'
#获取qrl用户SHA256密码字符串:
echo -n "XXXXXX"|sha256sum|tr -d '-'
#获取default用户SHA1密码字符串:
echo -n "XXXXXX" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
#获取qrl用户SHA1密码字符串:
echo -n "XXXXXX" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

  • 修改配置文件users.xml,用于设置默认账户及日常使用账户的密码、客户端地址限制等。如:
    <users>
        <default>     <password_sha256_hex>e39c50ed2c92ebdac15ef6d504a2fdd9e4474bffdd69044639da6d9e7e7b7e2c</password_sha256_hex>
            <networks incl="networks" replace="replace">
                <ip>192.168.8.1/24</ip>
                <ip>10.8.10.1/24</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </default>
        <qrl>   <password_sha256_hex>f71fe142b6042323b353ba3ba1468671474c142b77a8db87e028992c84d144b5</password_sha256_hex>
            <networks incl="networks" replace="replace">
                <ip>192.168.8.1/24</ip>
                <ip>10.8.10.1/24</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </qrl>
    </users>

或: 

    <users>
        <default>            <password_double_sha1_hex>557a667f41125f52cd4a294621f1dc979132a33b</password_double_sha1_hex>
            <networks incl="networks" replace="replace">
                <ip>192.168.8.1/24</ip>
                <ip>10.8.10.1/24</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </default>
        <qrl>
<password_double_sha1_hex>f71fe142b6042323b353ba3ba1468671474c142b</password_double_sha1_hex>
            <networks incl="networks" replace="replace">
                <ip>192.168.8.1/24</ip>
                <ip>10.8.10.1/24</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </qrl>
    </users>

 

 注:若修改了账户密码或uses.xml中配置修改了加密方式(安装时default用户的默认加密方式为password_sha256_hex,且配置文件生成于/etc/clickhouse-server/users.d/default-password.xml中),要将users.d目录下的自动生成的文件进行删除。

以rsyslog形式写入系统日志

直接发送到rsyslog接收服务端(不推荐)

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<logger>选项并添加以下内容
<use_syslog>1</use_syslog>
            <syslog>
                <address>10.8.10.201:514</address>
                <facility>LOG_LOCAL6</facility>
                <format>syslog</format>
            </syslog>
  • 重启clickhouse服务,使配置生效
systemctl restart clickhouse-server

  • 远端查看日志接收结果
ll /var/log//10.8.10.201/

留存本地,是否发送由rsyslog统一制定(推荐)

  • 创建本地日志留存目录
mkdir /var/log/clickhouse
chown clickhouse:clickhouse /var/log/clickhouse

 

  • Rsyslog添加配置

         1、编辑rsyslog.conf

vim /etc/rsyslog.conf

        2、添加如下配置

local6.* /var/log/clickhouse/clickhouse.log

        3、重启rsyslog服务

systemctl restart rsyslog

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<logger>选项并添加以下内容
       <use_syslog>1</use_syslog>
            <syslog>
                <facility>LOG_LOCAL6</facility>
                <format>syslog</format>
            </syslog>
  •  重启clickhouse服务,使配置生效
systemctl restart clickhouse-server

  • 查看本地日志
tail -f /var/log/clickhouse/clickhouse.log

启用openSSL安全协议

为clickhouse生成秘钥交换协议文件(每台主机各自生成)

  • 生成秘钥交换协议文件(时间会很长,一般在5-10分钟左右)
openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096

 

  • 配置文件中默认已配置,进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<openSSL>选项,如下

  • 以下两种证书生成方式,根据实际情况选择

为集群生成自签名证书(各主机证书不通用)(推荐)

注:openSSL将使用-addext参数,若使用该参数openSSL需升级到1.1.1以上版本

  • 创建证书目录(每台主机均需创建)

在/etc/clickhouse-server目前下创建证书目录certs并进入该目录

mkdir certs
cd certs/

  • 生成将用于新 CA 的密钥
openssl genrsa -out rbt_ca.key 2048

  • 生成新的自签名 CA 证书。以下将创建一个新证书,该证书将用于使用 CA 密钥签署其他证书:
openssl req -x509 -subj "/CN=rbt.local CA" -nodes -key rbt_ca.key -days 3650 -out rbt_ca.crt

常用命令参数解析:

    1. -key为生成的key文件生成证书;
    2. -out生成证书名称;
    3. -days证书有效期;
    4. -x509生成自签名文件
    5. -rsa:2048创建rsa私钥且长度为2048
    6. -keyout指定私钥保存位置
    7. -out新证书请求文件位置
    8. -nodes表示不对私钥进行加密
    9. -CA 指定签发证书或者转换证书格式的时候需要的CA证书文件
    10. -CAkey 指定签发证书或者转换证书格式时需要的CA证书对应的私钥文件路径
    11. -config指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/openssl.cnf中req段落的值
    12. -subj直接从命令行指定请求的主体名称,如果没有此选项,将弹出交互提示;
    13. 此处的域名配置,即"/CN=rbt.local CA",要求为各主机host的相同域名后缀,如host分别为node1.rbt.local、node2.rbt.local、node3.rbt.local时,其域名部分为rbt.local。
  • 验证新 CA 证书的内容
openssl x509 -in rbt_ca.crt -text

 

  • 创建证书请求 (CSR) 并为每个节点生成一个密钥

如果openssl为1.1.1以上版本,将支持-addext参数直接添加所需的域名等,若openssl低于1.1.1版本,则需要使用配置文件的形式生成证书及秘钥

openssl req -newkey rsa:2048 -nodes -subj "/CN=node1" -addext "subjectAltName = DNS:node1.rbt.local,IP:10.8.10.200" -keyout node1.key -out node1.csr
openssl req -newkey rsa:2048 -nodes -subj "/CN=node2" -addext "subjectAltName = DNS:node2.rbt.local,IP:10.8.10.201" -keyout node2.key -out node2.csr
openssl req -newkey rsa:2048 -nodes -subj "/CN=node3" -addext "subjectAltName = DNS:node3.rbt.local,IP:10.8.10.202" -keyout node3.key -out node3.csr

注:

    1. 此处将以各主机host信息中的前缀node1作为CN信息;
    2. 此处将以各主机完整host信息做为DNS,并添加各主机的IP地址到生成证书文件中。
  • 验证证书请求文件的内容
openssl req -in node1.csr -text

  • 使用 CSR 和 CA,创建新的证书和密钥对
openssl x509 -req -in node1.csr -out node1.crt -CAcreateserial -CA rbt_ca.crt -CAkey rbt_ca.key -days 3650
openssl x509 -req -in node2.csr -out node2.crt -CAcreateserial -CA rbt_ca.crt -CAkey rbt_ca.key -days 3650
openssl x509 -req -in node3.csr -out node3.crt -CAcreateserial -CA rbt_ca.crt -CAkey rbt_ca.key -days 3650

  • 验证主题和颁发者的证书
openssl x509 -in node1.crt -text -noout

  • 验证主题和颁发者的证书
openssl x509 -in node1.crt -text -noout

  • 检查新证书是否根据 CA 证书进行验证
openssl verify -CAfile rbt_ca.crt node1.crt
openssl verify -CAfile rbt_ca.crt node2.crt
openssl verify -CAfile rbt_ca.crt node3.crt

  • 将每个节点对应的CA证书、节点证书和密钥复制到各主机的certs目录下。如主机node2.rbt.local,应至少存有rbt_ca.crt、node2.key、node2.crt文件。当然如果为了所有主机上均能方便的使用clickhouse-client客户端访问其他主机,则亦可将所有其他主机的证书与秘钥存储于各主机上。
scp rbt_ca.crt root@node2.rbt.local:/etc/clickhouse-server/certs/
scp node2.crt root@node2.rbt.local:/etc/clickhouse-server/certs/
scp node2.key root@node2.rbt.local:/etc/clickhouse-server/certs/
scp rbt_ca.crt root@node3.rbt.local:/etc/clickhouse-server/certs/
scp node3.crt root@node3.rbt.local:/etc/clickhouse-server/certs/
scp node3.key root@node3.rbt.local:/etc/clickhouse-server/certs/

  • 更新所有者和权限以允许 ClickHouse 读取证书(所有主机)
chown clickhouse:clickhouse -R /etc/clickhouse-server/certs
chmod 600 /etc/clickhouse-server/certs/*
chmod 755 /etc/clickhouse-server/certs
ll /etc/clickhouse-server/certs

 

为集群生成自签名证书(通用证书)

  • 创建证书目录(每台主机均需创建)

在/etc/clickhouse-server目前下创建证书目录certs并进入该目录

mkdir certs
cd certs/

  • 生成将用于新 CA 的密钥
openssl genrsa -out big_ca.key 2048

  • 生成新的自签名 CA 证书。以下将创建一个新证书,该证书将用于使用 CA 密钥签署其他证书:
openssl req -x509 -subj "/CN=big CA" -nodes -key big_ca.key -days 3650 -out big_ca.crt

常用命令参数解析:

    1. -key为生成的key文件生成证书;
    2. -out生成证书名称;
    3. -days证书有效期;
    4. -x509生成自签名文件
    5. -rsa:2048创建rsa私钥且长度为2048
    6. -keyout指定私钥保存位置
    7. -out新证书请求文件位置
    8. -nodes表示不对私钥进行加密
    9. -CA 指定签发证书或者转换证书格式的时候需要的CA证书文件
    10. -CAkey 指定签发证书或者转换证书格式时需要的CA证书对应的私钥文件路径
    11. -config指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/openssl.cnf中req段落的值
    12. -subj直接从命令行指定请求的主体名称,如果没有此选项,将弹出交互提示;
    13. 此处的域名配置,即"/CN=big CA",要求为各主机host的相同部分,如host分别为big1、big2、big3时,其域名部分为big。
  • 验证新 CA 证书的内容
openssl x509 -in big_ca.crt -text

  • 创建证书信息配置文件
vim req.cnf

填入如下内容:

#定义输入用户信息选项的"特征名称"字段名,该扩展字段定义了多项用户信息。
distinguished_name = req_distinguished_name

#生成自签名证书时要使用的证书扩展项字段名,该扩展字段定义了要加入到证书中的一系列扩展项。
x509_extensions = v3_req

#如果设为no,那么 req 指令将直接从配置文件中读取证书字段的信息,而不提示用户输入。
prompt = no

[req_distinguished_name]
#国家代码,一般都是CN(大写)
C = CN
#省份
ST = Beijing
#城市
L = Beijing
#企业/单位名称
O = rbt
#企业部门
OU = rbt
#证书的主域名(一般写本机IP、host名称都可以)
CN = big

#####要加入到证书请求中的一系列扩展项#####
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

#最主要是就是IP地址,如果没有配置正确所有集群节点的IP地址,将无法认证成功,导致集群启动失败。DNS可填写host名称,没有也不影响认证。
[ alt_names ]
IP.1 = 127.0.0.1
IP.2 = 10.8.10.200
IP.3 = 10.8.10.201
IP.4 = 10.8.10.202
DNS.1 = localhost
DNS.2 = big1
DNS.3 = big2
DNS.4 = big3

  • 创建证书请求 (CSR) ,仅创建一个通用性的证书请
openssl req -newkey rsa:2048 -nodes -keyout big.key -out big.csr -config req.cnf -extensions v3_req

  • 验证证书请求文件的内容
openssl req -in big.csr -text

注:证书请求文件中虽然看不到配置文件中的DNS和IP信息,但并不影响使用 

  • 使用 CSR 和 CA,创建新的证书和密钥对
openssl x509 -req -in big.csr -out big.crt -CAcreateserial -CA big_ca.crt -CAkey big_ca.key -days 3650

  • 验证主题和颁发者的证书
openssl x509 -in big.crt -text -noout

 

  • 检查新证书是否根据 CA 证书进行验证
openssl verify -CAfile rbt_ca.crt big.crt

  • 将每个节点对应的CA证书、节点证书和密钥复制到各主机的certs目录下。如主机node2.rbt.local,应至少存有rbt_ca.crt、node2.key、node2.crt文件。当然如果为了所有主机上均能方便的使用clickhouse-client客户端访问其他主机,则亦可将所有其他主机的证书与秘钥存储于各主机上。
scp big_ca.crt root@big2:/etc/clickhouse-server/certs/
scp big.crt root@big2:/etc/clickhouse-server/certs/
scp big.key root@big2:/etc/clickhouse-server/certs/
scp big_ca.crt root@big3:/etc/clickhouse-server/certs/
scp big.crt root@big3:/etc/clickhouse-server/certs/
scp big.key root@big2:/etc/clickhouse-server/certs/

  • 更新所有者和权限以允许 ClickHouse 读取证书(所有主机)
chown clickhouse:clickhouse -R /etc/clickhouse-server/certs
chmod 600 /etc/clickhouse-server/certs/*
chmod 755 /etc/clickhouse-server/certs
ll /etc/clickhouse-server/certs

修改所有通信端口、访问端口为安全端口

禁用 MySQL 和 PostgreSQL 的默认仿真端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<mysql_port>和<postgresql_port>选项并将其注释
<!--<mysql_port>9004</mysql_port>-->
<!--<postgresql_port>9005</postgresql_port>-->

修改HTTP图形界面端口为HTTPS协议端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<http_port>选项并将其注释
<!--<http_port>8123</http_port>-->

  • 找到<https_port>选项解除注释(可根据实际情况修改端口号)
<https_port>8443</https_port>

 修改TCP客户端通信端口为基于SSL协议安全通通信端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<tcp_port>选项并将其注释
<!--<tcp_port>9000</tcp_port>-->

  • 找到<tcp_port_secure>选项解除注释(可根据实际情况修改端口号)
<tcp_port_secure>9440</tcp_port_secure>

修改服务器之间交换数据通信端口为基于SSL协议安全通通信端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<interserver_http_port>选项并将其注释
<!-- <interserver_http_port>9009</interserver_http_port>-->

  •  找到<interserver_https_port>选项解除注释(可根据实际情况修改端口号)
<interserver_https_port>9010</interserver_https_port>

设置监听外部端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<listen_host>选项并将其注释
<!-- <listen_host>0.0.0.0</listen_host> -->

  • 找到<listen_host>选项解除注释
<listen_host>0.0.0.0</listen_host>

  • 在每个节点上为 SSL 配置 gRPC(证书秘钥文件对应为本主机生成的文件名称)

        1、进入配置文件目录,编辑config.xml配置文件

vim /etc/clickhouse-server/config.xml

        2、找到<grpc>选项,进行如下修改

    <grpc>
        <enable_ssl>1</enable_ssl>

        <!-- The following two files are used only if enable_ssl=1 -->
        <ssl_cert_file>/etc/clickhouse-server/certs/node1.crt</ssl_cert_file>
        <ssl_key_file>/etc/clickhouse-server/certs/node1.key</ssl_key_file>

        <!-- Whether server will request client for a certificate -->
        <ssl_require_client_auth>true</ssl_require_client_auth>

        <!-- The following file is used only if ssl_require_client_auth=1 -->        <ssl_ca_cert_file>/etc/clickhouse-server/certs/rbt_ca.crt</ssl_ca_cert_file>

        <!-- Default transport compression type (can be overridden by client, see the transport_compression_type field in QueryInfo).
             Supported algorithms: none, deflate, gzip, stream_gzip -->
        <transport_compression_type>none</transport_compression_type>

        <!-- Default transport compression level. Supported levels: 0..3 -->
        <transport_compression_level>0</transport_compression_level>

        <!-- Send/receive message size limits in bytes. -1 means unlimited -->
        <max_send_message_size>-1</max_send_message_size>
        <max_receive_message_size>-1</max_receive_message_size>

        <!-- Enable if you want very detailed logs -->
        <verbose_logs>false</verbose_logs>
    </grpc>

 

使用证书和路径配置OpenSSL

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<openSSL>选项,进行如下修改
    <openSSL>
        <server> <!-- Used for https server AND secure tcp port -->
            <!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
            <certificateFile>/etc/clickhouse-server/certs/node1.crt</certificateFile>
            <privateKeyFile>/etc/clickhouse-server/certs/node1.key</privateKeyFile>
            <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
            <verificationMode>relaxed</verificationMode>
            <caConfig>/etc/clickhouse-server/certs/rbt_ca.crt</caConfig>
            <cacheSessions>true</cacheSessions>
            <disableProtocols>sslv2,sslv3</disableProtocols>
            <preferServerCiphers>true</preferServerCiphers>
        </server>

        <client> <!-- Used for connecting to https dictionary source and secured Zookeeper communication -->
            <loadDefaultCAFile>false</loadDefaultCAFile>
            <caConfig>/etc/clickhouse-server/certs/rbt_ca.crt</caConfig>
            <cacheSessions>true</cacheSessions>
            <disableProtocols>sslv2,sslv3</disableProtocols>
            <preferServerCiphers>true</preferServerCiphers>
            <verificationMode>relaxed</verificationMode>
            <invalidCertificateHandler>
                <name>RejectCertificateHandler</name>
            </invalidCertificateHandler>
        </client>
    </openSSL>

 

修改副本间通信端口及开启SSL协议安全通道

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到相应的副本配置内容进行如下修改
  1. 修改端口为以上变更<tcp_port_secure>端口
  2. 启动ssl,即添加<secure>1</secure>
  3. 添加用于副本的用户<user>(亦可不配置)
  4. 添加该用户的密码,该密码信息需与users.xml中对应配置保持一致(亦可不配置)
        <test_cluster_one_shard_three_replicas_localhost>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>node1.rbt.local</host>
                    <secure>1</secure>
                    <port>9440</port>
                    <user>default</user>                    <password_double_sha1_hex>557a667f41125f52cd4a294621f1dc979132a33b</password_double_sha1_hex>
                </replica>
                <replica>
                    <host>node2.rbt.local</host>
                    <secure>1</secure>
                    <port>9440</port>
                    <user>default</user>                    <password_double_sha1_hex>557a667f41125f52cd4a294621f1dc979132a33b</password_double_sha1_hex>
                </replica>
                <replica>
                    <host>node3.rbt.local</host>
                    <secure>1</secure>
                    <port>9440</port>
                    <user>default</user>                    <password_double_sha1_hex>557a667f41125f52cd4a294621f1dc979132a33b</password_double_sha1_hex>
                </replica>
            </shard>
        </test_cluster_one_shard_three_replicas_localhost>

修改keeper_server与client之间的SSL连接的安全端口

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<keeper_server>进行如下修改
    1. 启动ssl,即添加<secure>1</secure>
    2. 修改端口以便区别于原未加密端口9281
     <zookeeper>
        <node>
            <host>node1.rbt.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
        <node>
            <host>node2.rbt.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
        <node>
            <host>node3.rbt.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
    </zookeeper>

  • 找到<keeper_server>进行如下修改
  1. 将原本的<tcp_port>配置项修改为<tcp_port_secure>配置项
  2. 修改端口与<zookeeper>配置项保持一致9281

     <keeper_server>
        <tcp_port_secure>9281</tcp_port_secure>
        <server_id>1</server_id>
        <log_storage_path>/data/clickhouse/coordination/log</log_storage_path>       <snapshot_storage_path>/data/clickhouse/coordination/snapshots</snapshot_storage_path>

        <coordination_settings>
            <operation_timeout_ms>10000</operation_timeout_ms>
            <session_timeout_ms>30000</session_timeout_ms>
            <raft_logs_level>trace</raft_logs_level>
            <snapshots_to_keep>10</snapshots_to_keep>
        </coordination_settings>

        <raft_configuration>
            <server>
                <id>1</id>
                <hostname>node1.rbt.local</hostname>
                <port>9444</port>
                <secure>1</secure>
            </server>
            <server>
                <id>2</id>
                <hostname>node2.rbt.local</hostname>
                <port>9444</port>
                <secure>1</secure>
            </server>
            <server>
                <id>3</id>
                <hostname>node3.rbt.local</hostname>
                <port>9444</port>
                <secure>1</secure>
            </server>
         </raft_configuration>
    </keeper_server>
  • Raft配置启动ssl,即添加<secure>1</secure>

修改客户端配置文件

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<openSSL>选项进行如下配置
    <openSSL>
        <client> <!-- Used for connection to server's secure tcp port -->
            <loadDefaultCAFile>false</loadDefaultCAFile>
            <caConfig>/etc/clickhouse-server/certs/rbt_ca.crt</caConfig>
            <cacheSessions>true</cacheSessions>
            <disableProtocols>sslv2,sslv3</disableProtocols>
            <preferServerCiphers>true</preferServerCiphers>
            <!-- Use for self-signed: <verificationMode>none</verificationMode> -->
            <invalidCertificateHandler>
                <!-- Use for self-signed: <name>AcceptCertificateHandler</name> -->
                <name>RejectCertificateHandler</name>
            </invalidCertificateHandler>
        </client>
    </openSSL>

重启服务并开放防火墙

  • 重启clickhouse服务,使配置生效
systemctl restart clickhouse-server

 为新端口开放防火墙

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.8.10.1/24" port protocol="tcp" port="8443" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.8.10.1/24" port protocol="tcp" port="9440" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.8.10.1/24" port protocol="tcp" port="9010" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.8.10.1/24" port protocol="tcp" port="9281" accept"
firewall-cmd --reload

附:

端口

描述

2181

Zookeeper 默认服务端口。注意:请参阅9181ClickHouse Keeper

8123

http 请求的 HTTP API 端口。由 JDBC、ODBC 和 Web 界面使用。

8443

HTTP SSL/TLS 端口默认端口

9000

本机协议端口(也称为 ClickHouse TCP 协议)。由 ClickHouse 应用程序和流程(如clickhouse-server、clickhouse-client和本机 ClickHouse 工具)使用。用于分布式查询的服务器间通信。

9004

MySQL 仿真端口

9005

PostgreSQL 仿真端口(如果为 ClickHouse 启用 SSL,也用于安全通信)

9009

用于低级数据访问的服务器间通信端口。用于数据交换、复制、服务器间通信

9010

用于服务器间通信的 SSL/TLS

9011

本机协议 PROXYv1 协议端口

9019

JDBC 桥

9100

gRPC 端口

9181

推荐的 ClickHouse Keeper 端口

9234

<secure>1</secure>推荐的 ClickHouse Keeper Raft 端口(如果启用,也用于安全通信)

9363

Prometheus 默认指标端口

9281

推荐的安全 SSL ClickHouse Keeper 端口

9440

本机协议 SSL/TLS 端口

42000

Graphite企业级监控工具默认端口

升级安全通信后的各工具访问

客户端访问

clickhouse-client --user rbt --password XXXXXX --port 9440 --secure --host node1.rbt.local

页面访问

https://10.8.10.200:8443/play

 

注意除修改为https外,同时要增加后缀/play

4LW命令使用

openssl s_client -connect node1.rbt.local:9281

 DBeaver工具访问

 驱动属性中需增加证书文件的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值