يجب تحديد ssl.keyStore.location وssl.keyStore.password وssl.trustStore.location وssl.trustStore.password للاتصال مع ClickHouse client عبر SSL. هذه الخيارات متاحة ابتداءً من الإصدار 3.5.2 من ZooKeeper.
يمكنك إضافة zookeeper.crt إلى الشهادات الموثوق بها.
sudo cp zookeeper.crt /usr/local/share/ca-certificates/zookeeper.crt
sudo update-ca-certificatesسيكون قسم Client في 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>أضِف Zookeeper إلى تهيئة ClickHouse مع بعض إعدادات العنقود ووحدات الماكرو:
<clickhouse>
<zookeeper>
<node>
<host>localhost</host>
<port>2281</port>
<secure>1</secure>
</node>
</zookeeper>
</clickhouse>شغّل clickhouse-server. في السجلات، من المفترض أن ترى:
<Trace> ZooKeeper: initialized, hosts: secure://localhost:2281تدل البادئة secure:// على أن الاتصال مؤمَّن باستخدام SSL.
للتأكد من أن حركة المرور مشفّرة، شغّل tcpdump على المنفذ المؤمَّن:
tcpdump -i any dst port 2281 -nnXSوأجرِ استعلامًا في clickhouse-client:
SELECT * FROM system.zookeeper WHERE path = '/';في حالة اتصال غير مُشفَّر، سترى في مخرجات tcpdump شيئًا مثل هذا:
..../zookeeper/quota.عند استخدام اتصال مشفّر، يجب ألّا ترى هذا.