Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

تهيئة شهادة مستخدم SSL للمصادقة

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

يوفّر هذا الدليل إعدادات بسيطة وبالحد الأدنى لتهيئة المصادقة باستخدام شهادات مستخدم SSL. ويستند هذا الدليل العملي إلى دليل المستخدم لإعداد TLS.

إنشاء شهادات مستخدم SSL

  1. أنشئ طلب توقيع شهادة (CSR) ومفتاحًا. يكون التنسيق الأساسي كما يلي:
    openssl req -newkey rsa:2048 -nodes -subj "/CN=<my_host>:<my_user>"  -keyout <my_cert_name>.key -out <my_cert_name>.csr
    في هذا المثال، سنستخدم ما يلي للنطاق والمستخدم اللذين سيُستخدمان في بيئة العينة هذه:
    openssl req -newkey rsa:2048 -nodes -subj "/CN=chnode1.marsnet.local:cert_user"  -keyout chnode1_cert_user.key -out chnode1_cert_user.csr
  1. أنشئ شهادة المستخدم الجديدة ووقّعها لاستخدامها في المصادقة. يكون التنسيق الأساسي كما يلي:
    openssl x509 -req -in <my_cert_name>.csr -out <my_cert_name>.crt -CA <my_ca_cert>.crt -CAkey <my_ca_cert>.key -days 365
    في هذا المثال، سنستخدم ما يلي للنطاق والمستخدم اللذين سيُستخدمان في بيئة العينة هذه:
    openssl x509 -req -in chnode1_cert_user.csr -out chnode1_cert_user.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365

إنشاء مستخدم في SQL ومنحه الأذونات

  1. أنشئ مستخدم SQL مُهيّأ لاستخدام المصادقة بالشهادة:

    CREATE USER cert_user IDENTIFIED WITH ssl_certificate CN 'chnode1.marsnet.local:cert_user';
  2. امنح مستخدم الشهادة الجديد الامتيازات:

    GRANT ALL ON *.* TO cert_user WITH GRANT OPTION;

التحقق

  1. انسخ شهادة المستخدم، والمفتاح الخاص بالمستخدم، وشهادة CA إلى عقدة بعيدة.

  2. قم بتكوين OpenSSL في إعدادات العميل الخاصة بـ ClickHouse باستخدام الشهادة والمسارات.

    <openSSL>
        <client>
            <certificateFile>my_cert_name.crt</certificateFile>
            <privateKeyFile>my_cert_name.key</privateKeyFile>
            <caConfig>my_ca_cert.crt</caConfig>
        </client>
    </openSSL>
  3. شغّل clickhouse-client.

    clickhouse-client --user <my_user> --query 'SHOW TABLES'

اختبار HTTP

  1. انسخ شهادة المستخدم ومفتاح المستخدم وشهادة CA إلى node بعيدة.

  2. استخدم curl لاختبار أمر SQL تجريبي. يكون التنسيق الأساسي كما يلي:

    echo 'SHOW TABLES' | curl 'https://<clickhouse_node>:8443' --cert <my_cert_name>.crt --key <my_cert_name>.key --cacert <my_ca_cert>.crt -H "X-ClickHouse-SSL-Certificate-Auth: on" -H "X-ClickHouse-User: <my_user>" --data-binary @-

    على سبيل المثال:

    echo 'SHOW TABLES' | curl 'https://chnode1:8443' --cert chnode1_cert_user.crt --key chnode1_cert_user.key --cacert marsnet_ca.crt -H "X-ClickHouse-SSL-Certificate-Auth: on" -H "X-ClickHouse-User: cert_user" --data-binary @-

    سيكون الناتج مشابهًا لما يلي:

    INFORMATION_SCHEMA
    default
    information_schema
    system

الملخص

استعرضت هذه المقالة أساسيات إنشاء مستخدم وتهيئته لمصادقة شهادة SSL. ويمكن استخدام هذه الطريقة مع clickhouse-client أو أي عميل يدعم واجهة https ويمكن تعيين رؤوس HTTP فيه. يجب الحفاظ على خصوصية الشهادة والمفتاح اللذين جرى إنشاؤهما مع تقييد الوصول إليهما، لأن الشهادة تُستخدم لمصادقة المستخدم وتخويله لإجراء عمليات على قاعدة بيانات ClickHouse. تعامل مع الشهادة والمفتاح كما لو كانا كلمتي مرور.

Navigation