كيفية الاستخدام دعونا نقوم بتشفير شهادات SSL لمزارع HTTPS

عرض الفئات

كيفية الاستخدام دعونا نقوم بتشفير شهادات SSL لمزارع HTTPS

11 دقائق للقراءة

نظرة عامة #

Let's Encrypt هي هيئة إصدار شهادات مفتوحة وآلية تستخدم ACME (بيئة إدارة الشهادات التلقائية) لتوفير شهادات TLS/SSL مجانية لأي عميل متوافق. يمكن استخدام هذه الشهادات لتشفير الاتصالات بين خوادم الويب والمستخدمين.

سوف يناقش هذا البرنامج التعليمي بإيجاز سلطات الشهادات وكيفية RELIANOID يعمل التكامل مع Let's Encrypt، ثم راجع كيفية RELIANOID يستخدم certbot (عميل ACME) من أجل إجراء الاتصال مع البنية التحتية لـ Let's encrypt.

RELIANOID يتضمن Load Balancer 6.0.3 أو إصدار أعلى غلافًا صغيرًا لبرنامج certbot يسمى ليتسنكريبتز من أجل استخدام وظيفة Webroot الخاصة بـ Certbot، تشرح الأسطر التالية كيفية عمل هذا الغلاف، يرجى أخذ كل هذا في الاعتبار لجعله يعمل في بيئات الإنتاج.

كيف تعمل عملية التحقق من صحة Let's Encrypt؟ #

كوصف موجز لوظيفة Webroot، يعمل مكون Webroot الإضافي عن طريق إنشاء ملف مؤقت لكل نطاق من النطاقات المطلوبة في RELIANOID مسار الملف /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/. ثم يقوم خادم التحقق Let's Encrypt بإجراء طلبات HTTP للتحقق من أن DNS لكل نطاق مطلوب يتم حله إلى الخادم الذي يقوم بتشغيل غلاف letsencryptz وأن الملف المؤقت لأغراض التحقق يمكن الوصول إليه، ويوضح الرسم التخطيطي التالي مثالاً حقيقيًا:

دعونا نشفر RELIANOID

في الرسم التخطيطي السابق، RELIANOID يوجد موزع التحميل خلف جهاز التوجيه / جدار الحماية باستخدام عنوان IP عام 185.79.20.147 (على سبيل المثال)، يتم ربط حركة مرور HTTP وHTTPS بموازن التحميل الداخلي باستخدام VIP 192.168.101.31 (على سبيل المثال)، حيث يتم تكوين موازن التحميل باستخدام مزرعتين مختلفتين:

اسم مزرعة HTTPS استضافة الموقع بواسطة 192.168.101.31:443هذه المزرعة مسؤولة عن استضافة المواقع، وتُنشر خوادم ويب مختلفة على الإنترنت. على سبيل المثال، test1.relianoid.com, test2.relianoid.com, test3.relianoid.com يتم اختبار صفحات الويب المنشورة على هذه الخدمة الافتراضية وغيرها.
اسم مزرعة HTTP إعادة توجيه استضافة الويب بواسطة 192.168.101.31:80يتم استخدام هذه المزرعة لأغراض إعادة التوجيه فقط، فهي تجبر كل حركة المرور من HTTP إلى HTTPS.

يوضح الرسم التخطيطي السابق طلب شهادة SSL Let's Encrypt للنطاق test1.relianoid.com كما يلي:

1. يتم إرسال طلب الشهادة من موازن التحميل نفسه إلى البنية الأساسية لـ Let's Encrypt.
2. يكتشف Let's encrypt طلب شهادة SSL الجديد لـ test1.relianoid.com
3. دعنا نقوم بتشفير تشغيل حل IP DNS للمضيف المطلوب: test1.relianoid.com التحقق من أن النتيجة هي عنوان IP العام، وهو نفس عنوان IP الأصلي الذي بدأ الطلب.
4. في هذه المرحلة، يعلن Let's encrypt عن ليتسنكريبتز البرنامج النصي (webroot cerbot) الذي يحتاج إلى إنشاء ملف به HASH في المسار العام http://test1.relianoid.com/.well-know/acme-challenge/ (منفذ TCP 80)، الدليل المحلي /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/. ثم، ليتسنكريبتز يقوم بتكوين خدمة مؤقتة من أجل جعل هذا الملف متاحًا من الإنترنت (المزرعة إعادة توجيه استضافة الويب سيتم تعديله لهذا الغرض. إذا لم تكن المزرعة مُهيأة مسبقًا ليتسنكريبتز سيتم إنشاء واحد مؤقت في هذا VIP والميناء).
6. في أقرب وقت ليتسنكريبتز يؤكد إنشاء الخدمة المؤقتة، وتتحقق خوادم Lets Encrypt من إنشاء ملف التحقق المؤقت و HASH المحتوى صحيح.
7. أخيرًا، ترد خوادم Let's Encrypt على الطلب الأول باستخدام الشهادة التي تم إنشاؤها بالفعل اسم شائع (CN) test1.relianoid.com.
8. RELIANOID سيتم تخزين الشهادة التي تم إنشاؤها بالفعل في المسار المحلي /usr/local/relianoid/config/ وهو جاهز للتكوين في المزرعة استضافة الموقع.

في هذه المرحلة، سيتم استخدام شهادة Let's Encrypt الجديدة للخدمة الافتراضية HTTPS.

دعونا نقوم بتشفير أوامر الأتمتة #

كما هو موضح، ليتسنكريبتز سيقوم البرنامج النصي بأتمتة الإجراءات اللازمة لإدارة شهادات SSL الخاصة بك، مثل الإنشاء، والتجديد، والتدمير، والعرض، وغيرها. ستجد أدناه الأوامر المتاحة.

وصف letsencryptz: letsencryptz عبارة عن غلاف let's encrypt (certbot) مع الحد الأدنى من المعلمات الجاهزة لإدارة شهادات Let's Encrypt لملفات تعريف https الخاصة بـ Relianoid. ضع في اعتبارك أن هذا الغلاف يستخدم ميزة certbot webroot لذا فإن بنية Let's encrypt العامة تتطلب الاتصال بعنوان IP ومنفذ محليين (TCP 80 افتراضيًا) من أجل إجراء التحقق من صحة الطلب للنطاق المطلوب، لذلك بمجرد استخدام معلمة "الحصول"، سيقوم هذا البرنامج النصي بتكوين مزرعة HTTP والتي سيتم الوصول إليها بواسطة Let's encrypt لغرض التحقق، يتم إجراء هذا التكوين تلقائيًا بواسطة هذا البرنامج النصي نفسه، فقط تأكد من عدم استخدام عنوان IP الافتراضي ومنفذ HTTP 80 المستخدم بواسطة أي مزرعة أخرى متوازنة التحميل، وتأكد أيضًا من إمكانية الوصول إلى حل DNS للنطاق المطلوب من نظام Let's encrypt.


الاستخدام: /usr/local/relianoid/bin/letsencryptz الإجراء: --obtain | --destroy | --renew | --list | --listconf | --help --obtain: طلب شهادات جديدة باستخدام وحدة webroot cert-bot.

		الأوامر: --vip --مزرعة --اِختِصاص --اِختِصاص --اِختِصاص --test --vip: تم تكوين عنوان IP الافتراضي بالفعل لنشر خادم ويب مؤقت، وسيتم توصيله بخوادم let's encrypt العامة للتحقق من طلب الشهادة. يجب أن يكون عنوان IP الافتراضي مجانيًا على المنفذ 80 حتى يكون مرتبطًا بعملية محلية، إذا لم يكن مجانيًا فاستخدم --farm بدلاً من ذلك.
        		--farm: اسم المزرعة التي تقوم بتكوين خدمة مؤقتة تسمى "letsencryptz"، إذا لم يتم استخدام أي مزرعة، فسيتم تكوين مزرعة مؤقتة تسمى "letsencryptRelianoid" في عنوان IP الافتراضي المحدد.
        		--domain: المجال الذي يطلب الشهادة له، على سبيل المثال www.mycompany.com.
			--test: معلمة اختيارية، إذا تم استخدامها يتم طلب الشهادة لغرض الاختبار.

	--destroy: إلغاء وحذف اسم الشهادة المشار إليه، سيتم رفض الإجراء إذا كانت الشهادة المحددة قيد الاستخدام بواسطة مزرعة.
		
		الأوامر: --certname --certname: اسم الشهادة، يمكن الحصول على هذه القيمة من الإجراء --list.

	--renew: تجديد الشهادات عند اقتراب موعد انتهاء صلاحيتها، ولا حاجة لأوامر الأوامر: --test --forcerestart --vip --مزرعة --test: معلمة اختيارية، إذا تم استخدامها يتم تنفيذ تشغيل تجريبي، ويتم محاكاة تجديد الشهادات. 
			--forcerestart: معلمة اختيارية، إذا تم استخدامها، فسيتم إعادة تشغيل المزارع التي تستخدم الشهادات المتجددة من أجل تطبيق التغييرات.
                        --vip: تم تكوين عنوان IP الافتراضي بالفعل حيث سيتم نشر خادم ويب مؤقت، وسيتم توصيله بخوادم let's encrypt العامة للتحقق من تجديد الشهادة. يجب أن يكون عنوان IP الافتراضي مجانيًا على المنفذ 80 حتى يكون مرتبطًا بعملية محلية، إذا لم يكن مجانيًا فاستخدم --farm بدلاً من ذلك.
                        --farm: اسم المزرعة التي تقوم بتكوين خدمة مؤقتة تسمى "letsencryptz"، إذا لم يتم استخدام أي مزرعة، فسيتم تكوين مزرعة مؤقتة تسمى "letsencryptRelainoid" في عنوان IP الافتراضي المحدد.

	--list: قم بإدراج جميع الشهادات المحلية التي تديرها let's encrypt والحالة، ولا حاجة إلى أي أوامر.

	--listconf: قائمةRELIANOID


سيستغرق الأمر بعض الوقت في المرة الأولى التي يتم فيها تنفيذ let's Encryptz لأن النظام سيقوم بتثبيت التبعيات غير المحلولة تلقائيًا، كما يتم إجراء مراجعة التكوين قبل البدء في استخدامه، يطلب Let's Encrypt حساب بريد إلكتروني أو أغراض اتصال مرتبطة بالشهادات، سيتم استخدام حساب البريد الإلكتروني هذا مع أي إجراء يتم إجراؤه ضد نظام Let's Encrypt، يمكن تكوين هذا البريد الإلكتروني في ملف التكوين الرئيسي /usr/local/relianoid/config/global.conf، التوجيه $le_email.

تظهر أدناه بعض أمثلة الاستخدام.

RELIANOID دعونا نقوم بتشفير إنشاء الشهادة #

يطلب هذا الأمر شهادة جديدة للنطاق test2.relianoid.comيرجى مراعاة أن عنوان IP المُقدَّم سيكون داخليًا، ويجب توجيه حركة البيانات من عنوان IP العام إلى عنوان IP الداخلي. في حال عدم تمكن Let's Encrypt من الوصول إلى هذه الخدمة، فسيتم رفض الطلب.

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.relianoid.com تحذير: لم يتم تحديد اسم مزرعة، سيتم إنشاء مزرعة مؤقتة باسم letsencryptRelianoid في المنفذ VIP 192.168.101.31 80. تكوين المزرعة لـ let's encrypt التحقق من اسم الشهادة الحصول على شهادة للمجالات test2.relianoid.com... حفظ سجل التصحيح في /var/log/letsencrypt/letsencrypt.log المكونات الإضافية المحددة: جذر ويب للمصادقة، المثبت لا شيء الحصول على شهادة جديدة مسار(مسارات) غير قياسي، قد لا يعمل مع crontab المثبت بواسطة مدير الحزم في نظام التشغيل لديك طلب شهادة للمجال(المجالات) test2.relianoid.com موافق تم إنشاء اسم الشهادة test2.relianoid.com بتنسيق PEM جاهز لملف تعريف HTTPS تدمير تكوين جذر الويب للمزرعة letsencryptRelianoid الحذف بالفعل تكوين letsencryptRelianoid، خدمة letsencryptz إعادة تشغيل المزارع باستخدام الشهادات المتجددة: 

RELIANOID قائمة شهادات Let's Encrypt #

سيؤدي تنفيذ هذا الأمر إلى إظهار الشهادات الحالية التي تتم إدارتها بواسطة RELIANOID دعونا نقوم بتشفير النظام.

root@zva6k:~# letsencryptz --list إدراج جميع الشهادات المتاحة للتكوين الحالي في دليل التكوين /usr/local/relianoid/config/letsencrypt/ حفظ سجل التصحيح في /var/log/letsencrypt/letsencrypt.log اسم الشهادة: test1.relianoid.com النطاق(النطاقات): test1.relianoid.com تاريخ الانتهاء: 2019-09-19 10:48:02+00:00 (صالح: 77 يومًا) ملف شهادة Pem: /usr/local/relianoid/config/test1_relianoid_es.pem اسم الشهادة: test3.relianoid.com النطاق(النطاقات): test3.relianoid.com تاريخ الانتهاء: 2019-09-26 06:32:52+00:00 (صالح: 83 يومًا) ملف شهادة Pem: /usr/local/relianoid/config/test3_relianoid_es.pem


خذ في الاعتبار المجال اسم الشهادةسيتم التعرف على هذا الحقل بواسطة غلاف letsencryptz على أنه –اسم الشهادة.

RELIANOID تجديد شهادة Let's Encrypt #

يتحقق الأمر السابق مما إذا كانت أي شهادة مُنشأة مسبقًا تتطلب تجديدًا، وفي هذه الحالة سيتم التجديد تلقائيًا. يُرجى مراعاة أنه في حال استخدام الشهادة المُجدَّدة، سيلزم إعادة تشغيل المزرعة لتطبيق التغيير. يُرجى استخدام الخيار –إعادة التشغيل القسري إذا كنت تريد ليتسنكريبتز إعادة تشغيل جميع المزارع المطلوبة لتطبيق التغييرات.

root@zva6k:~# letsencryptz --renew --vip 192.168.101.31 تجديد جميع الشهادات المطلوبة حفظ سجل التصحيح في /var/log/letsencrypt/letsencrypt.log لم يحين موعد تجديد الشهادة بعد لم يحين موعد تجديد الشهادة بعد

RELIANOID دعونا نقوم بتشفير حذف الشهادة #

يلغي هذا الأمر الشهادة المعطاة ويحذفها. في حال اكتشف النظام أن الشهادة المحددة قيد الاستخدام حاليًا من قِبل أي مجموعة HTTPS، فسيتم رفض الإجراء. في المثال أعلاه، تم رفض إجراء الحذف لأن الشهادة قيد الاستخدام من قِبل المجموعة. اختبار https.

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com إلغاء وحذف الشهادة (الشهادات) test3.relianoid.com للتكوين الحالي... لا يمكن حذف هذا الملف لأنه يُستخدم بواسطة المزرعة (المزارع): testhttps

بمجرد إلغاء تعيين الشهادة من المزرعة، سيتم تنفيذ الإجراء التالي:

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com إلغاء وحذف شهادة(شهادات) test3.relianoid.com للتكوين الحالي... حفظ سجل التصحيح في /var/log/letsencrypt/letsencrypt.log تم حذف شهادة(شهادات) test3.relianoid.com في المسار /usr/local/relianoid/config/test3_relianoid_es.pem

نقل شهادات Let's Encrypt إلى RELIANOID #

RELIANOID يحفظ موازن التحميل جميع ملفات التكوين الخاصة بـ certbot في المسار المحلي /usr/local/zevenet/config/letsencrypt/. لنقل ملفات تكوين certbot الموجودة لديك (افتراضيًا في /etc/letsencrypt) من خادم آخر إلى RELIANOID، عليك فقط إنشاء ملف tarball (ملف tar.gz) من دليل التكوين الموجود في الخادم لديك وفك ضغط المحتوى في RELIANOID لنُشفّر مسار التكوين. أخيرًا، فكّر في تعديل المتغير $le_email في الملف global.conf إلى نفس البريد الإلكتروني المستخدم في الطلبات السابقة.

دعم تجميع شهادات Let's Encrypt #

RELIANOID يتم دعم البرنامج الإضافي Let's Encrypt بالكامل مع RELIANOID خدمة المجموعة. تُحفظ جميع إجراءات Let's Encrypt في ملف تكوين مُكرر بواسطة RELIANOID خدمة المجموعة، لذا فإن أي إجراء يتم تنفيذه في MASTER سيتم تكرار العقدة إلى شريحة العقدة تلقائيًا، ولكن أي إجراء يتم تنفيذه في شريحة سيتم تجاهل العقدة المرتبطة بـ Let's Encrypt لتجنب أي عدم تزامن.

شهادات Let's Encrypt تتجدد تلقائيًا #

RELIANOID يمكن تكوين البرنامج الإضافي Let's Encrypt للتحقق يوميًا مما إذا كانت بعض الشهادات تحتاج إلى تجديد، في حالة قيام النظام بتجديد شهادة معينة تلقائيًا ويتم استخدامها بواسطة بعض المزارع، فسيتم إعادة تشغيل المزرعة تلقائيًا من أجل تطبيق تغيير الشهادة.

لتتمكن من تكوين التجديد التلقائي، يرجى القيام بما يلي:

قم بإنشاء ملف cron التالي /etc/cron.d/letsencryptz مع المحتوى التالي:

root@zva6k:~# cat /etc/cron.d/letsencryptz 00 00 * * * root /usr/local/relianoid/bin/letsencryptz --renew --forcerestart --vip 192.168.101.31

مع هذا التكوين، سيتم تنفيذ فحص التجديد يوميًا عند منتصف الليل. وسيتم استخدام VIP 00 على المنفذ 00 للتحقق من نظام Let's Encrypt.

مراجع حسابات #

بعض المراجع المستخدمة في هذه المقالة هي:

Webroot و Certbot
كيف يعمل Let's Encrypt

📄 قم بتنزيل هذه الوثيقة بصيغة PDF #

    ُ:البريد الالكتروني *