ClickHouse と Zookeeper の間のオプションの安全な通信
Not supported in ClickHouse Cloud
注記
このページは ClickHouse Cloud には適用されません。ここに記載された手順は、ClickHouse Cloud サービスで自動化されています。
ClickHouse クライアントとの SSL 通信のために、ssl.keyStore.location
、ssl.keyStore.password
、ssl.trustStore.location
、ssl.trustStore.password
を指定する必要があります。これらのオプションは Zookeeper バージョン 3.5.2 以降で使用可能です。
信頼された証明書に zookeeper.crt
を追加できます。
sudo cp zookeeper.crt /usr/local/share/ca-certificates/zookeeper.crt
sudo update-ca-certificates
config.xml
のクライアントセクションは次のようになります。
<client>
<certificateFile>/etc/clickhouse-server/client.crt</certificateFile>
<privateKeyFile>/etc/clickhouse-server/client.key</privateKeyFile>
<loadDefaultCAFile>true</loadDefaultCAFile>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
<invalidCertificateHandler>
<name>RejectCertificateHandler</name>
</invalidCertificateHandler>
</client>
いくつかのクラスターとマクロを使用して、ClickHouse の設定に Zookeeper を追加します。
<clickhouse>
<zookeeper>
<node>
<host>localhost</host>
<port>2281</port>
<secure>1</secure>
</node>
</zookeeper>
</clickhouse>
clickhouse-server
を起動します。ログには次のように表示されるはずです。
<Trace> ZooKeeper: initialized, hosts: secure://localhost:2281
接続が SSL によって保護されていることを示すには、接頭辞 secure://
が表示されます。
トラフィックが暗号化されていることを確認するには、保護されたポートで tcpdump
を実行します。
tcpdump -i any dst port 2281 -nnXS
そして、clickhouse-client
でクエリを実行します。
SELECT * FROM system.zookeeper WHERE path = '/';
暗号化されていない接続では、tcpdump
の出力に次のようなものが表示されます。
暗号化された接続では、これが表示されないはずです。