يوفّر هذا الدليل إعدادات بسيطة وبالحد الأدنى لتهيئة المصادقة باستخدام شهادات مستخدم SSL. ويستند هذا الدليل العملي إلى دليل المستخدم لإعداد TLS.
إنشاء شهادات مستخدم SSL
- أنشئ طلب توقيع شهادة (CSR) ومفتاحًا. يكون التنسيق الأساسي كما يلي:
في هذا المثال، سنستخدم ما يلي للنطاق والمستخدم اللذين سيُستخدمان في بيئة العينة هذه:openssl req -newkey rsa:2048 -nodes -subj "/CN=<my_host>:<my_user>" -keyout <my_cert_name>.key -out <my_cert_name>.csropenssl req -newkey rsa:2048 -nodes -subj "/CN=chnode1.marsnet.local:cert_user" -keyout chnode1_cert_user.key -out chnode1_cert_user.csr
- أنشئ شهادة المستخدم الجديدة ووقّعها لاستخدامها في المصادقة. يكون التنسيق الأساسي كما يلي:
في هذا المثال، سنستخدم ما يلي للنطاق والمستخدم اللذين سيُستخدمان في بيئة العينة هذه:openssl x509 -req -in <my_cert_name>.csr -out <my_cert_name>.crt -CA <my_ca_cert>.crt -CAkey <my_ca_cert>.key -days 365openssl x509 -req -in chnode1_cert_user.csr -out chnode1_cert_user.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365
إنشاء مستخدم في SQL ومنحه الأذونات
-
أنشئ مستخدم SQL مُهيّأ لاستخدام المصادقة بالشهادة:
CREATE USER cert_user IDENTIFIED WITH ssl_certificate CN 'chnode1.marsnet.local:cert_user'; -
امنح مستخدم الشهادة الجديد الامتيازات:
GRANT ALL ON *.* TO cert_user WITH GRANT OPTION;
التحقق
-
انسخ شهادة المستخدم، والمفتاح الخاص بالمستخدم، وشهادة CA إلى عقدة بعيدة.
-
قم بتكوين OpenSSL في إعدادات العميل الخاصة بـ ClickHouse باستخدام الشهادة والمسارات.
<openSSL> <client> <certificateFile>my_cert_name.crt</certificateFile> <privateKeyFile>my_cert_name.key</privateKeyFile> <caConfig>my_ca_cert.crt</caConfig> </client> </openSSL> -
شغّل
clickhouse-client.clickhouse-client --user <my_user> --query 'SHOW TABLES'
اختبار HTTP
-
انسخ شهادة المستخدم ومفتاح المستخدم وشهادة CA إلى node بعيدة.
-
استخدم
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. تعامل مع الشهادة والمفتاح كما لو كانا كلمتي مرور.