كيفية الحصول على شهادات SSL لتشفيرها باستخدام التحقق من صحة DNS لـ Certbot CloudFlare

Kyfyt Alhswl Ly Shhadat Ssl Ltshfyrha Bastkhdam Althqq Mn Sht Dns L Certbot Cloudflare



Certbot هو عميل ACME لمرجع شهادة Let's Encrypt (CA). يتم استخدامه لإنشاء شهادة Let's Encrypt SSL وتجديدها تلقائيًا. افتراضيًا، يستخدم Certbot تحدي Let’s Encrypt HTTP-01 للتحقق من ملكية المجال وإصدار شهادة SSL للمجال. لكن تحدي HTTP-01 لن ينجح إلا إذا كان لديك عنوان IP عام ويمكن الوصول إلى جهاز الكمبيوتر الخاص بك من الإنترنت. لذا، إذا كنت تريد استخدام شهادات Let's Encrypt SSL لشبكتك المنزلية أو شبكتك الخاصة، فيجب عليك استخدام تحدي DNS-01 بدلاً من ذلك. عند استخدام اختبار DNS-01، تتحقق Let's Encrypt من ملكية النطاق باستخدام خادم DNS الخاص بالمجال. لذلك، فهو يعمل مع الشبكات الخاصة أيضًا.

للحصول على شرح مفصل حول كيفية عمل تحدي Let’s Encrypt DNS-01 (أو التحقق من صحة DNS)، اقرأ المقال بعنوان ما هو تحدي Let’s Encrypt DNS-01 وكيفية استخدامه للحصول على شهادات SSL.

في هذه المقالة، سنوضح لك كيفية استخدام التحقق من صحة Let's Encrypt DNS للحصول على شهادة SSL لاسم المجال الخاص بك باستخدام المكون الإضافي Certbot وCertbot CloudFlare DNS.







موضوع المحتويات:

  1. إدارة المجال الخاص بك مع CloudFlare DNS
  2. تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Ubuntu/Debian
  3. تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Fedora
  4. تثبيت المكون الإضافي Certbot وCertbot CloudFlare على RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. التحقق من تثبيت البرنامج المساعد Certbot وCertbot CloudFlare بشكل صحيح
  6. إنشاء رمز CloudFlare API المميز
  7. تخزين رمز CloudFlare API بشكل آمن على الكمبيوتر/الخادم
  8. إنشاء شهادة SSL باستخدام التحقق من صحة DNS Certbot CloudFlare
  9. قائمة دعونا نقوم بتشفير شهادات SSL باستخدام Certbot
  10. تجديد شهادات Let’s Encrypt SSL باستخدام Certbot
  11. خاتمة
  12. مراجع

إدارة المجال الخاص بك مع CloudFlare DNS

للحصول على شهادة Let's Encrypt SSL باستخدام التحقق من صحة CloudFlare DNS، يجب أن يكون لديك حساب CloudFlare ويجب أن يستخدم المجال الخاص بك CloudFlare DNS. أنت تستطيع إنشاء حساب CloudFlare مجانا وخدمة CloudFlare DNS مجانية الاستخدام أيضًا.



لإدارة المجال الخاص بك باستخدام CloudFlare DNS، يمكنك القيام بأحد الإجراءات التالية:



  • سجل المجال الخاص بك من CloudFlare
  • انقل المجال الخاص بك إلى CloudFlare
  • قم بتغيير خادم أسماء DNS لاسم المجال الخاص بك إلى خادم أسماء CloudFlare DNS من لوحة التحكم الخاصة بمسجل المجال الخاص بك

ليس عليك شراء نطاق من CloudFlare أو نقل نطاق إلى CloudFlare لإدارته باستخدام خدمة CloudFlare DNS. يمكنك فقط تغيير خادم الأسماء الخاص بنطاقك إلى خادم أسماء CloudFlare DNS من لوحة المعلومات الخاصة بمسجل المجال الخاص بك (المكان الذي اشتريت منه المجال) وإدارة المجال الخاص بك من CloudFlare. لمزيد من المعلومات حول تغيير خادم الأسماء الخاص بمجالك إلى خادم أسماء CloudFlare DNS، اقرأ هذه المقالة.





تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Ubuntu/Debian

يتوفر المكون الإضافي Certbot وCertbot CloudFlare في مستودع الحزم الرسمي لـ Ubuntu/Debian. لذا، يمكنك تثبيتها على Ubuntu/Debian بسهولة شديدة.

أولاً، قم بتحديث ذاكرة التخزين المؤقت لمستودع حزمة APT باستخدام الأمر التالي:



$ sudo تحديث مناسب

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

لتثبيت البرنامج المساعد Certbot وCertbot CloudFlare DNS، قم بتشغيل الأمر التالي:

$ sudo ملائم ثَبَّتَ certbot python3-certbot-dns-cloudflare

لتأكيد التثبيت، اضغط على 'Y' ثم اضغط <أدخل> .

يتم الآن تثبيت البرنامج المساعد Certbot وCertbot CloudFlare DNS. يستغرق بعض الوقت لإكمال.

في هذه المرحلة، يجب تثبيت البرنامج المساعد Certbot وCertbot CloudFlare DNS.

تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Fedora

يتوفر المكون الإضافي Certbot وCertbot CloudFlare في مستودع الحزم الرسمي لـ Fedora ويمكن تثبيته على Fedora بسهولة شديدة.

أولاً، قم بتحديث قاعدة بيانات حزمة DNF باستخدام الأمر التالي:

$ sudo dnf makecache

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

لتثبيت البرنامج الإضافي Certbot وCertbot CloudFlare DNS على Fedora، قم بتشغيل الأمر التالي:

$ sudo dnf ثَبَّتَ certbot python3-certbot-dns-cloudflare

لتأكيد التثبيت، اضغط على 'Y' ثم اضغط <أدخل> .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

يتم الآن تثبيت البرنامج المساعد Certbot وCertbot CloudFlare DNS. يستغرق بعض الوقت لإكمال.

  لقطة شاشة لوصف برنامج كمبيوتر تم إنشاؤه تلقائيًا

في هذه المرحلة، يجب تثبيت البرنامج الإضافي Certbot وCertbot CloudFlare DNS على Fedora.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

تثبيت المكون الإضافي Certbot وCertbot CloudFlare على RHEL/AlmaLinux/Rocky Linux/CentOS Stream

لا يتوفر المكون الإضافي Certbot CloudFlare DNS في مستودعات الحزم الرسمية لـ RHEL/AlmaLinux/Rocky Linux/CentOS Stream. يتوفر البرنامج الإضافي Certbot CloudFlare DNS في مستودع حزم EPEL. يمكنك تمكين مستودع حزم EPEL على RHEL/AlmaLinux/Rocky Linux/CentOS Stream وتثبيت البرنامج الإضافي Certbot CloudFlare DNS من هناك.

بمجرد تمكين مستودع حزمة EPEL، قم بتحديث ذاكرة التخزين المؤقت لقاعدة بيانات DNF باستخدام الأمر التالي:

$ sudo dnf makecache

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

بعد ذلك، قم بتثبيت البرنامج الإضافي Certbot وCertbot CloudFlare DNS على نظام RHEL/AlmaLinux/Rocky Linux/CentOS Stream باستخدام الأمر التالي:

$ sudo dnf ثَبَّتَ certbot python3-certbot-dns-cloudflare

لتأكيد التثبيت، اضغط على 'Y' ثم اضغط <أدخل> .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

يتم الآن تثبيت البرنامج المساعد Certbot وCertbot CloudFlare DNS. يستغرق بعض الوقت لإكمال.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

لقبول مفتاح GPG الخاص بمستودع EPEL، اضغط على 'Y' ثم اضغط <أدخل> .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

في هذه المرحلة، يجب تثبيت البرنامج الإضافي Certbot وCertbot CloudFlare DNS.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

التحقق من تثبيت البرنامج المساعد Certbot وCertbot CloudFlare بشكل صحيح

للتحقق من تثبيت Certbot على جهاز الكمبيوتر الخاص بك، قم بتشغيل الأمر التالي:

$ com.certbot --إصدار

إذا تم تثبيت Certbot، فيجب أن يقوم الأمر بطباعة رقم إصدار Certbot المثبت على جهاز الكمبيوتر الخاص بك.

كما ترون، لدينا Certbot 2.1.0 مثبتًا على جهاز دبيان الخاص بنا.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

للتحقق من تثبيت البرنامج الإضافي Certbot CloudFlare DNS على جهاز الكمبيوتر الخاص بك، قم بتشغيل الأمر التالي:

$ sudo الإضافات سيرتبوت

إذا تم تثبيت المكون الإضافي Certbot CloudFlare DNS، فيجب أن تجد 'dns-cloudflare' في قائمة المكونات الإضافية كما هو موضح في لقطة الشاشة التالية:

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

إنشاء رمز CloudFlare API المميز

للتحقق من ملكية المجال، يحتاج Certbot إلى إضافة سجل TXT على المجال الذي تتم إدارته بواسطة خادم CloudFlare DNS. ولهذا السبب، يحتاج Certbot إلى الوصول إلى رمز CloudFlare API المميز. يمكنك إنشاء رمز API مميز لنطاقك من لوحة تحكم CloudFlare.

أولا قم بتسجيل الدخول إلى حسابك على CloudFlare. ثم قم بالضغط على أيقونة الملف الشخصي الخاص بك

> ملفي من الزاوية العلوية اليمنى للصفحة.

انتقل إلى قسم 'رموز واجهة برمجة التطبيقات'. [1] وانقر على 'إنشاء رمز مميز' [2] .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

انقر فوق 'استخدام القالب' من قسم 'تحرير DNS للمنطقة'.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

من قسم 'الإذن'، امنح إذن 'التحرير' إلى 'منطقة DNS' عن طريق تحديد الخيارات المحددة من القوائم المنسدلة.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

إذا كنت تدير نطاقات متعددة باستخدام CloudFlare، فيمكنك السماح بتعديل 'منطقة محددة' من قسم 'موارد المنطقة'. يعد السماح لرمز API المميز بتعديل منطقة واحدة فقط أكثر أمانًا من السماح لرمز API المميز بتعديل جميع المناطق. وذلك لأنه إذا تم اختراق رمز واجهة برمجة التطبيقات، فسيكون سطح الهجوم أصغر وسيحدث ضرر أقل.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

إذا كنت تريد استخدام مفتاح API واحد لتعديل جميع النطاقات التي تديرها CloudFlare، فحدد 'جميع المناطق' من قسم 'موارد المنطقة'.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

بمجرد الانتهاء من تكوين رمز واجهة برمجة التطبيقات (API) الخاص بك، انقر فوق 'متابعة إلى الملخص'.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

سيتم عرض ملخص للإجراءات التي يمكنك تنفيذها على المجالات التي تديرها CloudFlare باستخدام رمز API المميز. انقر على 'إنشاء رمز مميز'.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

يجب إنشاء رمز API المميز. انسخ رمز API المميز في مكان آمن حتى لا تفقده. بمجرد مغادرة هذه الصفحة، لن تتمكن من العثور على رمز واجهة برمجة التطبيقات هذا مرة أخرى. يتعين عليك إنشاء رمز مميز جديد لواجهة برمجة التطبيقات (API) في حالة فقده:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

تخزين رمز CloudFlare API بشكل آمن على الكمبيوتر/الخادم

يحتاج Certbot إلى استخدام رمز CloudFlare API المميز لإضافة سجل TXT جديد لمجالك في خادم CloudFlare DNS. لذلك، يجب عليك تخزين رمز CloudFlare API على جهاز الكمبيوتر/الخادم الخاص بك. قد يؤدي تخزين رمز API المميز دون ضمان أذونات الوصول المناسبة إلى السماح للبرامج/المستخدمين الآخرين بالوصول إلى رمز API المميز. وهذا ليس ما تريده لأسباب أمنية. سنوضح لك في هذا القسم كيفية تخزين رمز CloudFlare API بشكل آمن على نظام الملفات.

أولاً، قم بإنشاء دليل (أي ~/.secrets/certbot) حيث تريد تخزين مفتاح CloudFlare API كما يلي:

$ mkdir -بف ~ / .أسرار / com.certbot

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

قم بإنشاء ملف 'cloudflare.ini' في الدليل الذي تم إنشاؤه حديثًا (أي ~/.secrets/certbot) وافتحه باستخدام محرر النصوص المفضل لديك (أي nano) كما يلي:

$ نانو ~ / .أسرار / com.certbot / cloudflare.ini

اكتب السطر التالي في الملف 'cloudflare.ini' ثم اضغط <التحكم> + X تليها 'Y' و <أدخل> لحفظه (إذا كنت تستخدم محرر النصوص nano).

dns_cloudflare_api_token = < your-cloudflare-api-token >

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

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

$ sudo chown الجذر:الجذر ~ / .أسرار / com.certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .أسرار / com.certbot / cloudflare.ini

كما ترى، فإن المستخدم الجذر فقط لديه أذونات القراءة والكتابة للملف 'cloudflare.ini'.

$ ليرة سورية -lh ~ / .أسرار / com.certbot / cloudflare.ini

المستخدمون الآخرون الذين يحاولون قراءة ملف 'cloudflare.ini' سيحصلون على رسالة خطأ 'تم رفض الإذن'.

$ قطة ~ / .أسرار / com.certbot / cloudflare.ini

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

إنشاء شهادة SSL باستخدام التحقق من صحة DNS Certbot CloudFlare

لإنشاء شهادة Let's Encrypt SSL لاسم مجال البدل '*.nodekite.com' باستخدام التحقق من صحة CloudFlare DNS، قم بتشغيل أمر cerbot كما يلي:

$ sudo certbot بالتأكيد --dns-cloudflare --dns-cloudflare-بيانات الاعتماد ~ / .أسرار / com.certbot / cloudflare.ini * .nodekite.com

لإنشاء شهادة Let's Encrypt SSL لأسماء النطاقات 'nodekite.com' و'www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows':

$ sudo certbot بالتأكيد --dns-cloudflare --dns-cloudflare-بيانات الاعتماد ~ / .أسرار / com.certbot / cloudflare.ini www.nodekite.com Nodekite.com

إذا كانت تغييرات DNS تستغرق وقتًا طويلاً للنشر إلى خوادم أسماء DNS الشائعة في جميع أنحاء العالم، فيمكنك استخدام خيار '-dns-cloudflare-propagation-secions' الخاص بـ Certbot لتعيين عدد الثواني التي تريد من Certbot أن ينتظرها قبل التحقق من صحة DNS تم إنجازه.

$ sudo certbot بالتأكيد --dns-cloudflare --dns-cloudflare-بيانات الاعتماد ~ / .أسرار / com.certbot / cloudflare.ini --dns-cloudflare-انتشار-ثواني 60 * .nodekite.com

بمجرد تشغيل أمر Certbot، سيُطلب منك كتابة عنوان بريدك الإلكتروني. اكتب عنوان بريدك الإلكتروني ثم اضغط <أدخل> لاستكمال.

اضغط على 'Y' ثم اضغط <أدخل> لقبول 'شروط الخدمة' الخاصة بـ Let's Encrypt.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

اضغط على 'Y' ثم اضغط <أدخل> .

  لقطة شاشة لوصف برنامج كمبيوتر تم إنشاؤه تلقائيًا

يتم الآن إصدار شهادة Let's Encrypt SSL. يستغرق بعض الوقت لإكمال.

  لقطة شاشة لوصف خطأ في الكمبيوتر تم إنشاؤها تلقائيًا

عند هذه النقطة، يتم إصدار شهادة Let's Encrypt SSL. يجب أن يتم عرض المسار الكامل حيث تم حفظ ملفات شهادة SSL. يجب أيضًا عرض تاريخ انتهاء صلاحية شهادة SSL.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

قائمة دعونا نقوم بتشفير شهادات SSL باستخدام Certbot

يمكنك إدراج جميع شهادات Let’s Encrypt SSL التي قمت بإنشائها باستخدام Certbot باستخدام الأمر التالي:

$ sudo شهادات سيرتبوت

كما ترون، تم إدراج شهادة Let's Encrypt SSL التي تم إنشاؤها لنطاق 'nodekite.com' [1] . يتم إصدار شهادة Wildcard SSL لـ 'nodekite.com' [2] اسم النطاق. تاريخ انتهاء الشهادة هو 2024-03-20 (صالحة لمدة 89 يومًا) [3] . يتم أيضًا إدراج الشهادة ومسار المفتاح الخاص هنا [4] .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

يقوم Certbot بتخزين جميع شهادات SSL التي قمت بإنشائها لنطاقاتك في الدليل '/etc/letsencrypt/live' في المجلد الخاص بها.

$ sudo ليرة سورية -رل / إلخ / com.letsencrypt / يعيش /

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

تجديد شهادات Let’s Encrypt SSL باستخدام Certbot

يقوم Certbot تلقائيًا بتجديد جميع شهادات Let's Encrypt SSL التي قمت بإنشائها باستخدام التحقق من صحة CloudFlare DNS.

لاختبار ما إذا كانت ميزة التجديد التلقائي لشهادات Let's Encrypt SSL تعمل، قم بتشغيل الأمر التالي:

$ sudo تجديد سيرتبوت --ركض جاف

تتم محاكاة إجراء التجديد التلقائي لكل شهادة من شهادات Let's Encrypt SSL التي قمت بإنشائها.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

إذا كانت الاختبارات ناجحة، فسوف يتم تهنئتك. ويعني الاختبار الناجح أنه سيتم تجديد شهادات SSL تلقائيًا قبل انتهاء صلاحيتها. لن تضطر إلى القيام بأي شيء آخر.

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

لكي تعمل ميزة التجديد التلقائي لـ Certbot، يجب تمكين مؤقت النظام 'cerbot.timer' وتنشيطه على جهاز الكمبيوتر/الخادم الخاص بك.

يمكنك التحقق مما إذا كان مؤقت النظام 'cerbot.timer' ممكّنًا ونشطًا باستخدام الأمر التالي:

$ sudo حالة systemctl certbot.timer

كما ترون، تم تمكين مؤقت النظام 'certbot.timer' (يبدأ تلقائيًا في وقت التمهيد) [1] ونشطة [2] . يتحقق Certbot مما إذا كانت هناك حاجة لتجديد أي شهادة SSL بعد 11 دقيقة فقط (وفقًا للقطة الشاشة التالية) ويجدد شهادات SSL التي على وشك الانتهاء [3] .

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

للتحقق يدويًا مما إذا كانت أي شهادة SSL على وشك الانتهاء وتجديد شهادات SSL منتهية الصلاحية، قم بتشغيل الأمر التالي:

$ sudo تجديد سيرتبوت

في حالتنا، لا توجد شهادة SSL على وشك الانتهاء. لذلك، لم يحاول Certbot تجديد أي شهادة SSL.

لإجبار Certbot على تجديد شهادة SSL لمجال معين (على سبيل المثال *.nodekite.com)، قم بتشغيل الأمر التالي:

$ sudo certbot بالتأكيد --تجديد القوة * .nodekite.com

اضغط على '1' ثم اضغط <أدخل> لتحديد الخيار الأول (للتحقق من صحة DNS باستخدام CloudFlare DNS).

  لقطة شاشة لجهاز الكمبيوتر تم إنشاء الوصف تلقائيًا

يجب تجديد شهادة SSL.

خاتمة

للحصول على شهادة Let's Encrypt SSL باستخدام التحقق من صحة CloudFlare DNS باستخدام Certbot، تحتاج إلى الوصول إلى رمز CloudFlare API المميز. في هذه المقالة، أوضحنا لك كيفية إنشاء رمز CloudFlare API المميز لنطاقك وتخزينه بشكل آمن على جهاز الكمبيوتر/الخادم الخاص بك حتى تتمكن من الوصول إليه باستخدام Certbot عند الحاجة. لقد أوضحنا لك أيضًا كيفية تثبيت Certbot والمكون الإضافي Certbot CloudFlare DNS على توزيعات Linux الأكثر شيوعًا. لقد أظهرنا لك كيفية إنشاء شهادات Let’s Encrypt Wildcard SSL بالإضافة إلى شهادات SSL للنطاقات الفردية باستخدام التحقق من صحة Certbot وCloudFlare DNS. أخيرًا، أوضحنا لك كيفية تجديد شهادات Let's Encrypt SSL باستخدام Certbot تلقائيًا ويدويًا.

مراجع: