للحصول على شرح مفصل حول كيفية عمل تحدي Let’s Encrypt DNS-01 (أو التحقق من صحة DNS)، اقرأ المقال بعنوان ما هو تحدي Let’s Encrypt DNS-01 وكيفية استخدامه للحصول على شهادات SSL.
في هذه المقالة، سنوضح لك كيفية استخدام التحقق من صحة Let's Encrypt DNS للحصول على شهادة SSL لاسم المجال الخاص بك باستخدام المكون الإضافي Certbot وCertbot CloudFlare DNS.
موضوع المحتويات:
- إدارة المجال الخاص بك مع CloudFlare DNS
- تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Ubuntu/Debian
- تثبيت البرنامج المساعد Certbot وCertbot CloudFlare على Fedora
- تثبيت المكون الإضافي Certbot وCertbot CloudFlare على RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- التحقق من تثبيت البرنامج المساعد Certbot وCertbot CloudFlare بشكل صحيح
- إنشاء رمز CloudFlare API المميز
- تخزين رمز CloudFlare API بشكل آمن على الكمبيوتر/الخادم
- إنشاء شهادة SSL باستخدام التحقق من صحة DNS Certbot CloudFlare
- قائمة دعونا نقوم بتشفير شهادات SSL باستخدام Certbot
- تجديد شهادات Let’s Encrypt SSL باستخدام Certbot
- خاتمة
- مراجع
إدارة المجال الخاص بك مع 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 تلقائيًا ويدويًا.