Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

تهيئة TLS

غير مدعوم في ClickHouse Cloud

يوفّر هذا الدليل إعدادات بسيطة ومحدودة لتهيئة ClickHouse لاستخدام شهادات OpenSSL للتحقق من صحة الاتصالات. ولأغراض هذا العرض التوضيحي، تُنشأ شهادة ومفتاح لمرجع شهادات (CA) موقَّعين ذاتيًا، إلى جانب شهادات للعُقد، بحيث يمكن إنشاء الاتصالات باستخدام الإعدادات المناسبة.

إنشاء عملية نشر لـ ClickHouse

أُعدّ هذا الدليل باستخدام Ubuntu 20.04، وتم تثبيت ClickHouse على المضيفات التالية باستخدام حزمة DEB (عبر apt). اسم النطاق هو marsnet.local:

المضيف عنوان IP
chnode1 192.168.1.221
chnode2 192.168.1.222
chnode3 192.168.1.223

أنشئ شهادات TLS

  1. أنشئ مفتاحًا سيُستخدم لمرجع CA الجديد:

    openssl genrsa -out marsnet_ca.key 2048
  2. أنشئ شهادة CA جديدة موقَّعة ذاتيًا. سينشئ الأمر التالي شهادة جديدة ستُستخدم لتوقيع شهادات أخرى باستخدام مفتاح CA:

    openssl req -x509 -subj "/CN=marsnet.local CA" -nodes -key marsnet_ca.key -days 1095 -out marsnet_ca.crt
  1. تحقّق من محتويات شهادة CA الجديدة:

    openssl x509 -in marsnet_ca.crt -text
  2. أنشئ طلب شهادة (CSR) وولِّد مفتاحًا لكل عقدة:

    openssl req -newkey rsa:2048 -nodes -subj "/CN=chnode1" -addext "subjectAltName = DNS:chnode1.marsnet.local,IP:192.168.1.221" -keyout chnode1.key -out chnode1.csr
    openssl req -newkey rsa:2048 -nodes -subj "/CN=chnode2" -addext "subjectAltName = DNS:chnode2.marsnet.local,IP:192.168.1.222" -keyout chnode2.key -out chnode2.csr
    openssl req -newkey rsa:2048 -nodes -subj "/CN=chnode3" -addext "subjectAltName = DNS:chnode3.marsnet.local,IP:192.168.1.223" -keyout chnode3.key -out chnode3.csr
  3. باستخدام CSR وCA، أنشئ أزواجًا جديدة من الشهادات والمفاتيح:

    openssl x509 -req -in chnode1.csr -out chnode1.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365 -copy_extensions copy
    openssl x509 -req -in chnode2.csr -out chnode2.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365 -copy_extensions copy
    openssl x509 -req -in chnode3.csr -out chnode3.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365 -copy_extensions copy
  4. تحقّق من الشهادات من حيث subject وissuer:

    openssl x509 -in chnode1.crt -text -noout
  5. تأكّد من إمكانية التحقق من الشهادات الجديدة باستخدام شهادة CA:

    openssl verify -CAfile marsnet_ca.crt chnode1.crt
    chnode1.crt: OK

أنشئ واضبط دليلاً لتخزين الشهادات والمفاتيح.

  1. أنشئ مجلدًا داخل دليل يمكن لـ ClickHouse الوصول إليه على كل عقدة. نوصي باستخدام دليل الإعدادات الافتراضي (مثل /etc/clickhouse-server):

    mkdir /etc/clickhouse-server/certs
  2. انسخ شهادة CA وشهادة العقدة والمفتاح الخاص المقابل لكل عقدة إلى دليل certs الجديد.

  3. حدّث المالك والأذونات للسماح لـ 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
    total 20
    drw-r--r-- 2 clickhouse clickhouse 4096 Apr 12 20:23 ./
    drwx------ 5 clickhouse clickhouse 4096 Apr 12 20:23 ../
    -rw------- 1 clickhouse clickhouse  997 Apr 12 20:22 chnode1.crt
    -rw------- 1 clickhouse clickhouse 1708 Apr 12 20:22 chnode1.key
    -rw------- 1 clickhouse clickhouse 1131 Apr 12 20:23 marsnet_ca.crt

تهيئة البيئة بمجموعات أساسية باستخدام ClickHouse Keeper

في بيئة النشر هذه، تُستخدم إعدادات ClickHouse Keeper التالية في كل عقدة. سيكون لكل خادم معرّفه الخاص <server_id>. (مثلاً، <server_id>1</server_id> للعقدة chnode1، وهكذا دواليك.)

  1. أضف ما يلي ضمن الوسم <clickhouse> في ملف config.xml الخاص بخادم ClickHouse
<keeper_server>
    <tcp_port_secure>9281</tcp_port_secure>
    <server_id>1</server_id>
    <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>
    <snapshot_storage_path>/var/lib/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>
    </coordination_settings>

    <raft_configuration>
        <secure>true</secure>
        <server>
            <id>1</id>
            <hostname>chnode1.marsnet.local</hostname>
            <port>9444</port>
        </server>
        <server>
            <id>2</id>
            <hostname>chnode2.marsnet.local</hostname>
            <port>9444</port>
        </server>
        <server>
            <id>3</id>
            <hostname>chnode3.marsnet.local</hostname>
            <port>9444</port>
        </server>
    </raft_configuration>
</keeper_server>
  1. قم بإلغاء التعليق وتحديث إعدادات Keeper على جميع العُقد، ثم اضبط العلامة <secure> على 1:

    <zookeeper>
        <node>
            <host>chnode1.marsnet.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
        <node>
            <host>chnode2.marsnet.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
        <node>
            <host>chnode3.marsnet.local</host>
            <port>9281</port>
            <secure>1</secure>
        </node>
    </zookeeper>
  2. حدِّث وأضِف إعدادات العنقود التالية إلى chnode1 وchnode2. سيُستخدم chnode3 لاستكمال النصاب لـ ClickHouse Keeper.

يُنشئ ما يلي مجموعةً (cluster) بنسخة مكررة (replica) واحدة لكل شريحة (shard) موزَّعة على خادمَين (خادم على كل عقدة).

<remote_servers>
    <cluster_1S_2R>
        <shard>
            <replica>
                <host>chnode1.marsnet.local</host>
                <port>9440</port>
                <user>default</user>
                <password>ClickHouse123!</password>
                <secure>1</secure>
            </replica>
            <replica>
                <host>chnode2.marsnet.local</host>
                <port>9440</port>
                <user>default</user>
                <password>ClickHouse123!</password>
                <secure>1</secure>
            </replica>
        </shard>
    </cluster_1S_2R>
</remote_servers>
  1. حدّد قيم الماكرو لتتمكن من إنشاء جدول ReplicatedMergeTree للاختبار. على chnode1:

    <macros>
        <shard>1</shard>
        <replica>replica_1</replica>
    </macros>

    على العقدة chnode2:

    <macros>
        <shard>1</shard>
        <replica>replica_2</replica>
    </macros>

تكوين واجهات TLS على عُقد ClickHouse

تُكوَّن الإعدادات التالية في ملف config.xml الخاص بخادم ClickHouse

  1. عيّن اسم العرض لعملية النشر (اختياري):

    <display_name>clickhouse</display_name>
  2. اضبط ClickHouse للاستماع على المنافذ الخارجية:

    <listen_host>0.0.0.0</listen_host>
  3. كوّن منفذ https وعطّل منفذ http على كل عقدة:

    <https_port>8443</https_port>
    {/*<http_port>8123</http_port>*/}
  4. كوّن منفذ TCP الآمن لـ ClickHouse Native وعطّل المنفذ الافتراضي غير الآمن على كل عقدة:

    <tcp_port_secure>9440</tcp_port_secure>
    {/*<tcp_port>9000</tcp_port>*/}
  5. كوّن منفذ interserver https وعطّل المنفذ الافتراضي غير الآمن على كل عقدة:

    <interserver_https_port>9010</interserver_https_port>
    {/*<interserver_http_port>9009</interserver_http_port>*/}
  6. كوّن OpenSSL باستخدام الشهادات والمسارات

<openSSL>
    <server>
        <certificateFile>/etc/clickhouse-server/certs/chnode1.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/certs/chnode1.key</privateKeyFile>
        <verificationMode>relaxed</verificationMode>
        <caConfig>/etc/clickhouse-server/certs/marsnet_ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>false</loadDefaultCAFile>
        <caConfig>/etc/clickhouse-server/certs/marsnet_ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <verificationMode>relaxed</verificationMode>
        <invalidCertificateHandler>
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

لمزيد من المعلومات، تفضّل بزيارة هذه الصفحة

  1. اضبط TLS لـ gRPC على كل عقدة:

    <grpc>
        <enable_ssl>1</enable_ssl>
        <ssl_cert_file>/etc/clickhouse-server/certs/chnode1.crt</ssl_cert_file>
        <ssl_key_file>/etc/clickhouse-server/certs/chnode1.key</ssl_key_file>
        <ssl_require_client_auth>true</ssl_require_client_auth>
        <ssl_ca_cert_file>/etc/clickhouse-server/certs/marsnet_ca.crt</ssl_ca_cert_file>
        <transport_compression_type>none</transport_compression_type>
        <transport_compression_level>0</transport_compression_level>
        <max_send_message_size>-1</max_send_message_size>
        <max_receive_message_size>-1</max_receive_message_size>
        <verbose_logs>false</verbose_logs>
    </grpc>

    لمزيد من المعلومات، تفضّل بزيارة https://clickhouse.com/docs/interfaces/grpc/

  2. اضبط clickhouse client على عقدة واحدة على الأقل لاستخدام TLS في الاتصالات ضمن ملف config.xml الخاص به (يوجد افتراضيًا في /etc/clickhouse-client/):

    <openSSL>
        <client>
            <loadDefaultCAFile>false</loadDefaultCAFile>
            <caConfig>/etc/clickhouse-server/certs/marsnet_ca.crt</caConfig>
            <cacheSessions>true</cacheSessions>
            <disableProtocols>sslv2,sslv3</disableProtocols>
            <preferServerCiphers>true</preferServerCiphers>
            <invalidCertificateHandler>
                <name>RejectCertificateHandler</name>
            </invalidCertificateHandler>
        </client>
    </openSSL>
  3. عطّل منافذ المحاكاة الافتراضية لكلٍّ من MySQL وPostgreSQL:

    {/*mysql_port>9004</mysql_port*/}
    {/*postgresql_port>9005</postgresql_port*/}

الاختبار

  1. شغِّل جميع العقد، واحدةً تلو الأخرى:

    service clickhouse-server start
  2. تأكّد من أن المنافذ الآمنة تعمل وفي وضع الاستماع، ويجب أن يكون الإخراج مشابهًا لهذا المثال على كل عقدة:

    root@chnode1:/etc/clickhouse-server# netstat -ano | grep tcp
    tcp        0      0 0.0.0.0:9010            0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 0.0.0.0:9440            0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 0.0.0.0:9281            0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 192.168.1.221:33046     192.168.1.222:9444      ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.1.221:42730     192.168.1.223:9444      ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.1.221:51952     192.168.1.222:9281      ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.1.221:22        192.168.1.210:49801     ESTABLISHED keepalive (6618.05/0/0)
    tcp        0     64 192.168.1.221:22        192.168.1.210:59195     ESTABLISHED on (0.24/0/0)
    tcp6       0      0 :::22                   :::*                    LISTEN      off (0.00/0/0)
    tcp6       0      0 :::9444                 :::*                    LISTEN      off (0.00/0/0)
    tcp6       0      0 192.168.1.221:9444      192.168.1.222:59046     ESTABLISHED off (0.00/0/0)
    tcp6       0      0 192.168.1.221:9444      192.168.1.223:41976     ESTABLISHED off (0.00/0/0)
    منفذ ClickHouse الوصف
    8443 واجهة https
    9010 منفذ https بين الخوادم
    9281 منفذ ClickHouse Keeper الآمن
    9440 بروتوكول TCP الأصلي الآمن
    9444 منفذ Raft لـ ClickHouse Keeper
  3. تحقق من حالة ClickHouse Keeper لن تعمل أوامر الأحرف الأربعة (4lW) المعتادة باستخدام echo بدون TLS، وإليك كيفية استخدام هذه الأوامر مع openssl.

    • ابدأ جلسة تفاعلية باستخدام openssl
openssl s_client -connect chnode1.marsnet.local:9281
CONNECTED(00000003)
depth=0 CN = chnode1
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = chnode1
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:CN = chnode1
   i:CN = marsnet.local CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICtDCCAZwCFD321grxU3G5pf6hjitf2u7vkusYMA0GCSqGSIb3DQEBCwUAMBsx
...
  • أرسِل أوامر 4LW ضمن جلسة OpenSSL

    mntr
    ---
    Post-Handshake New Session Ticket arrived:
    SSL-Session:
        Protocol  : TLSv1.3
    ...
    read R BLOCK
    zk_version      v22.7.3.5-stable-e140b8b5f3a5b660b6b576747063fd040f583cf3
    zk_avg_latency  0
    zk_max_latency  4087
    zk_min_latency  0
    zk_packets_received     4565774
    zk_packets_sent 4565773
    zk_num_alive_connections        2
    zk_outstanding_requests 0
    zk_server_state leader
    zk_znode_count  1087
    zk_watch_count  26
    zk_ephemerals_count     12
    zk_approximate_data_size        426062
    zk_key_arena_size       258048
    zk_latest_snapshot_size 0
    zk_open_file_descriptor_count   187
    zk_max_file_descriptor_count    18446744073709551615
    zk_followers    2
    zk_synced_followers     1
    closed
  1. شغِّل عميل ClickHouse باستخدام الخيار --secure ومنفذ TLS:

    root@chnode1:/etc/clickhouse-server# clickhouse-client --user default --password ClickHouse123! --port 9440 --secure --host chnode1.marsnet.local
    ClickHouse client version 22.3.3.44 (official build).
    Connecting to chnode1.marsnet.local:9440 as user default.
    Connected to ClickHouse server version 22.3.3 revision 54455.
    
    clickhouse :)
  2. سجّل الدخول إلى واجهة Play عبر واجهة https على https://chnode1.marsnet.local:8443/play.

    تهيئة TLS
  1. أنشئ جدولًا مكرّرًا:

    clickhouse :) CREATE TABLE repl_table ON CLUSTER cluster_1S_2R
                (
                    id UInt64,
                    column1 Date,
                    column2 String
                )
                ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/repl_table', '{replica}' )
                ORDER BY (id);
    ┌─host──────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ chnode2.marsnet.local │ 9440 │      0 │       │                   1 │                0 │
    │ chnode1.marsnet.local │ 9440 │      0 │       │                   0 │                0 │
    └───────────────────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘
  2. أضِف صفّين إلى chnode1:

    INSERT INTO repl_table
    (id, column1, column2)
    VALUES
    (1,'2022-04-01','abc'),
    (2,'2022-04-02','def');
  3. تحقق من النسخ المتماثل من خلال عرض الصفوف على chnode2:

    SELECT * FROM repl_table
    ┌─id─┬────column1─┬─column2─┐
    │  1 │ 2022-04-01 │ abc     │
    │  2 │ 2022-04-02 │ def     │
    └────┴────────────┴─────────┘

تهيئة OpenSSL لـ ClickHouse Keeper المستقل

عند تشغيل ClickHouse Keeper كعملية مستقلة (بدلاً من تضمينه داخل ClickHouse server)، يجب تهيئة شهادات OpenSSL وإعداداته بشكل منفصل في ملف تهيئة Keeper. ومن دون ذلك، لن يتمكن Keeper من إنشاء اتصالات آمنة لاتصال العميل (tcp_port_secure) أو لتنفيذ تكرار Raft بين عُقد Keeper.

أضف قسم <openSSL> التالي إلى ملف تهيئة ClickHouse Keeper المستقل على كل عقدة:

<openSSL>
    <server>
        <certificateFile>/etc/clickhouse-keeper/certs/chnode1.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-keeper/certs/chnode1.key</privateKeyFile>
        <verificationMode>relaxed</verificationMode>
        <caConfig>/etc/clickhouse-keeper/certs/marsnet_ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>false</loadDefaultCAFile>
        <caConfig>/etc/clickhouse-keeper/certs/marsnet_ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <verificationMode>relaxed</verificationMode>
        <invalidCertificateHandler>
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

يُستخدم القسم <server> لاستقبال اتصالات العملاء الواردة عبر منفذ Keeper الآمن (tcp_port_secure). ويُستخدم القسم <client> للاتصالات الصادرة بين عُقد Keeper أثناء النسخ المتماثل باستخدام Raft.

أوضاع التحقق في OpenSSL ومعالِجات الشهادات

يوفّر الإعداد <openSSL> عدة خيارات لكلٍّ من <verificationMode> و<invalidCertificateHandler>، تتحكّم في الطريقة التي يتحقق بها ClickHouse من شهادات TLS. وتنطبق هذه الإعدادات على clickhouse-server وclickhouse-client وClickHouse Keeper المستقل.

أوضاع التحقق

اضبط <verificationMode> داخل القسم <server> أو <client> في <openSSL>:

الوضع الوصف
none بدون التحقق من الشهادة. يكون الاتصال مشفّرًا، لكن لا تُتحقَّق هوية الطرف المقابل. استخدم هذا للاختبار فقط.
relaxed يتحقق من شهادة الطرف المقابل إذا قُدِّمت، لكنه لا يفشل إذا لم تُقدَّم أي شهادة.
once على جانب الخادم، يتحقق من شهادة العميل أثناء المصافحة الأولية فقط، ويتخطى إعادة التفاوض. وعلى جانب العميل، يتصرف بالطريقة نفسها مثل relaxed.
strict يتطلب شهادة الطرف المقابل ويتحقق منها بالكامل. يفشل الاتصال إذا كانت الشهادة مفقودة أو منتهية الصلاحية أو غير موقَّعة من CA موثوقة. ويُنصح به لبيئات الإنتاج.

معالجات الشهادات غير الصالحة

عيّن <invalidCertificateHandler> داخل القسم <server> أو <client> ضمن <openSSL>. يحدّد هذا المعالج ما يحدث عند فشل التحقق من الشهادة. على جانب الخادم، يتحكم في كيفية التعامل مع شهادات العميل غير الصالحة. وعلى جانب العميل، يتحكم في كيفية التعامل مع شهادات الخادم غير الصالحة.

المعالج الوصف
RejectCertificateHandler يرفض الاتصال إذا كانت الشهادة غير صالحة. هذا هو الإعداد الافتراضي والموصى به.
AcceptCertificateHandler يقبل الاتصال حتى إذا كانت الشهادة غير صالحة. لا تستخدمه إلا لأغراض الاختبار.

مثال: تعطيل التحقق من الشهادة

لتجاوز التحقق من الشهادة بالكامل (على سبيل المثال، عند استخدام شهادات موقّعة ذاتيًا في بيئة اختبار)، اضبط verificationMode على none واستخدم AcceptCertificateHandler.

بالنسبة إلى clickhouse-client، يمكنك أيضًا استخدام الخيار --accept-invalid-certificate في واجهة سطر الأوامر، والذي يطبّق كلا الإعدادين تلقائيًا.

clickhouse-client (/etc/clickhouse-client/config.xml):

<openSSL>
    <client>
        <loadDefaultCAFile>false</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <verificationMode>none</verificationMode>
        <invalidCertificateHandler>
            <name>AcceptCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

clickhouse-server (config.xml أو ملف في config.d/). لا يزال قسم <server> يتطلب مسارات الشهادة والمفتاح الخاص، لأن الخادم يجب أن يقدّم شهادته الخاصة إلى العملاء، حتى عندما لا يتحقق من شهاداتهم:

<openSSL>
    <server>
        <certificateFile>/etc/clickhouse-server/certs/server.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/certs/server.key</privateKeyFile>
        <verificationMode>none</verificationMode>
        <caConfig>/etc/clickhouse-server/certs/ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>false</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <verificationMode>none</verificationMode>
        <invalidCertificateHandler>
            <name>AcceptCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

ClickHouse Keeper المستقل (ملف تهيئة Keeper):

<openSSL>
    <server>
        <certificateFile>/etc/clickhouse-keeper/certs/keeper.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-keeper/certs/keeper.key</privateKeyFile>
        <verificationMode>none</verificationMode>
        <caConfig>/etc/clickhouse-keeper/certs/ca.crt</caConfig>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>false</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <verificationMode>none</verificationMode>
        <invalidCertificateHandler>
            <name>AcceptCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

الملخص

ركّزت هذه المقالة على إعداد بيئة ClickHouse باستخدام TLS. ستختلف الإعدادات بحسب المتطلبات في بيئات الإنتاج؛ فعلى سبيل المثال، مستويات التحقق من الشهادات، والبروتوكولات، وخوارزميات التشفير، وغيرها. لكن ينبغي أن تكون لديك الآن فكرة واضحة عن الخطوات اللازمة لتهيئة الاتصالات الآمنة وتنفيذها.

Navigation