كيفية تأمين أباتشي  Apache باستخدام Let’ s Encrypt على أوبونتو Ubuntu

كيفية تأمين أباتشي  Apache باستخدام Let' s Encrypt على أوبونتو Ubuntu

Let’ s Encrypt هي سلطة شهادة (CA) توفر شهادات SSL/TLS مجانية يمكن استخدامها لاستخدام الإنتاج أيضًا. من الممكن الحصول على شهادة SSL صالحة لنطاقك مجانًا. من الممكن فقط طلبها من الخادم حيث يتم توجيه المجال. دعونا نقوم بفحص DNS للمجال الذي يشير إلى الخادم الحالي. بعد ذلك، ستصدر الشهادة لك. سيوضح لك هذا الدليل كيفية تثبيت عميل Let’ s Encrypt على نظام أوبونتو Ubuntu الخاص بك وإصدار شهادة SSL رابط.

في الوقت الحالي، يتم أتمتة عملية الحصول على الشهادة بالكامل وإجراءات التركيب بالكامل على كل من Apache و Nginx.

في هذا الدليل، ستستخدم Certbot للحصول على شهادة SSL مجانية لـ Apache على Ubuntu/Debian وإعداد شهادتك بحيث يتم تجديدها تلقائيًا.

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

إذا كنت ترغب في تثبيت الشهادة يدويًا، فيمكنك التحقق من إعداد Let’s Encrypt SSL على Ubuntu.

متطلبات

  • تم إعداد خادم Ubuntu/Debian، بالإضافة إلى مستخدم غير جذري خارق مع جدار حماية وامتيازات سودو.
  • اسم مجال مسجل بالكامل. في هذا الدليل، سنستخدم your_domain كمثال طوال الطريق.
  • تم إعداد كل من سجلات DNS هذه للخادم الخاص بك. 
  • سجل A مع your_domain يشير إلى عنوان الهوية العامة للخادم الخاص بك.
  • سجل A مع www.your_domain يشير إلى عنوان الهوية العامة للخادم الخاص بك.
  • تم تثبيت الأباتشي. تأكد من أن لديك بالفعل ملف مضيف افتراضي تم إعداده لمجالك. سيستخدم هذا البرنامج التعليمي /etc/apache2/sites-available/your_domain.conf كمثال.

الخطوة 1 – تثبيت Certbot باستخدام Snap

يمكن استخدام snap في جميع توزيعات Linux الرئيسية، بما في ذلك Ubuntu و Linux Mint و Debian و Fedora.

يأتي Snap مثبتًا مسبقًا على Ubuntu 16 وبعد ذلك. لتأكيد أن لديك أحدث إصدار من snapd، قم بتشغيل الأوامر التالية على النظام.

$ sudo snap install core; sudo snap refresh core

إذا كان لديك أي حزم Certbot مثبتة عبر apt، فقم بإزالتها قبل تثبيت snap Certbot للتأكد من أنه عند تشغيل certbot الأوامر، يتم استخدام الإصدار snap بدلاً من إصدار مدير الحزمة.

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

إذا قمت بتثبيت Certbot سابقًا باستخدام برنامج certbot-auto، فيجب عليك حذفه.

الخطوة 2 – إعداد شهادة SSL

يجب أن يكون Certbot قادرًا على العثور على المضيف الافتراضي الصحيح في تكوين Apache الخاص بك، بحيث يمكنه تكوين SSL تلقائيًا. لنكون أكثر تحديدًا، يحدث هذا من خلال البحث عن توجيه ServerName يتماشى مع المجال الذي تطلب شهادة له.

يجب أن يكون لديك بالفعل كتلة VirtualHost للمجال الخاص بك على /etc/apache2/sites-available/your_domain.conf مع مجموعة توجيه ServerName بشكل صحيح.

للتحقق، افتح ملف المضيف الافتراضي للمجال باستخدام نانو أو محرر النص المفضل لديك:

$ sudo nano /etc/apache2/sites-available/your_domain.conf

ابحث عن خط ServerName الموجود بالفعل. سيكون مشابهًا لهذا، ولكن مع اسم النطاق الخاص بك بدلاً من your_domain:

...
ServerName your_domain;
...

إذا لم يحدث ذلك الآن، فقم بتحديث توجيه ServerName للإشارة إلى اسم النطاق الخاص بك، ثم توقف عن المحرر بعد حفظ الملف، وبعد ذلك امض قدمًا وتحقق من إعدادات الإعدادات الخاصة بك:

$ sudo apache2ctl configtest

سترى المخرجات أدناه إذا لم تكن هناك أخطاء في الملف:

Output:
Syntax OK

إذا حصلت على خطأ، أعد فتح ملف المضيف الافتراضي وتحقق من أي أخطاء مطبعية أو أحرف مفقودة. بمجرد صحة بناء ملف التكوين الخاص بك، قم بإعادة تحميل Apache لتحميل التكوين الجديد:

$ sudo systemctl restart apache2

أصبح Certbot الآن قادرًا على العثور على كتلة VirtualHost المناسبة وتطبيق تحديث عليها.

الخطوة 3 – اسمح لـ HTTPS بالمرور عبر جدار الحماية

إذا تم تمكين جدار الحماية ufw الخاص بك وفقًا لما يوصي به جزء المتطلبات الأساسية، فسيتعين عليك تعديل الإعدادات لتمكين حركة مرور HTTPS. لحسن الحظ، يأتي ufw في حزمة بها بعض الملفات الشخصية التي تساعد على تبسيط عملية تغيير قواعد جدار الحماية لحركة مرور HTTP و HTTPS عند تثبيتها على Ubuntu/Debian.

من الممكن تصور الإعداد الحالي من خلال كتابة الأمر التالي:

$ sudo ufw status

يجب أن يبدو إخراج هذا الأمر شيئًا كهذا، مما يوضح أن حركة مرور HTTP وحدها مسموح بها في خادم الويب:

Output:
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

للسماح بحركة مرور HTTPS إضافية، قم بتمكين ملف تعريف “WWW Full’ وإزالة بدل ملف تعريف” WWW “المتكرر:

$ sudo ufw allow 'WWW Full'
$ sudo ufw delete allow 'WWW'

يجب أن يكون وضعك الآن مشابهًا لما يلي:

$ sudo ufw status
Output:
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW Full                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW Full (v6)              ALLOW       Anywhere (v6)

الخطوة 4 – الحصول على شهادة SSL في الأباتشي

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

$ sudo certbot --apache -d your_domain -d www.your_domain

يسمح هذا لـ certbot بتشغيل -apache plugin، مع استخدام -d ليكون محددًا حول الأسماء التي ترغب في أن تكون شهادتها صالحة.

إذا كنت تعمل على certbot لأول مرة، فسيُطلب منك إدخال عنوان بريد إلكتروني والموافقة على شروط الخدمة. سيُسأل أيضًا عما إذا كنت ترغب في مشاركة عنوان بريدك الإلكتروني مع مؤسسة Electronic Frontier Foundation. منظمة غير ربحية تدافع عن الحقوق الرقمية، وتصادف أيضًا أنها صانع Certbot. يمكنك إما إدخال Y لمشاركة عنوان بريدك الإلكتروني أو N إذا كنت لا ترغب في ذلك.

بمجرد الانتهاء من ذلك، سيتفاعل certbot مع خادم Let’ s Encrypt، ثم يجري اختبارًا للتأكد من أنك تتحكم في المجال الذي تطلبه.

إذا كان ذلك جيدًا، فسوف يسأل certbot عن الطريقة التي ترغب في تكوين إعدادات HTTPS الخاصة بك:

Output:
Please choose whether to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

حدد الخيار المناسب لك واضغط على ENTER. سيتم بعد ذلك تحديث الإعدادات تلقائيًا وسيتم إعادة تحميل Apache لدمج الإعدادات المختارة.

سيختتم certbot بملاحظة تخبرك أن العملية كانت ناجحة وستظهر لك مكان تخزين شهاداتك:

Output:
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your cert will expire on 2019-10-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
— If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

تم تنزيل شهادتك وتركيبها وتحميلها. أعد تحميل موقع الويب الخاص بك باستخدام https ://وانتبه إلى مؤشر الأمان لمتصفحك. يجب أن يُظهر، عادةً باستخدام رمز قفل أخضر، أن الموقع مؤمن جيدًا. إذا كنت تستخدم اختبار SSL Labs Serever لاختبار الخادم الخاص بك، فسيحصل على درجة A.

الخطوة 5 – التحقق من التجديد التلقائي لـ Certbot

صلاحية شهادات Let’ s Encrypt هي 90 يومًا فقط، من أجل تشجيع المستخدمين على جعل عملية تجديد الشهادات تلقائية. حزمة certbot التي قمنا بتثبيتها تعتني بهذا بنفسها عن طريق إضافة نص تجديد إلى /etc/cron.d. التي تعمل مرتين في اليوم وتجدد تلقائيًا أي شهادة في غضون 30 يومًا من انتهاء الصلاحية.

لإجراء اختبار على عملية التجديد، قم بتشغيل تجريبية باستخدام certbot:

$ sudo certbot renew --dry-run

أنت جاهز إذا لم ترى أي أخطاء. سيتأكد Certbot من تجديد شهاداتك وإعادة تحميل Apache لدمج الإعدادات المحدثة عند الضرورة. في حالة فشل عملية التجديد الآلي، سيرسل Let’ s Encrypt رسالة في بريدك الإلكتروني لتحذيرك من أن شهادتك ستنتهي قريبًا.

خلاصة

في هذا الدليل، قمت بتثبيت روبوت عميل Let’s Encrypt. تم تنزيل شهادات SSL لنطاقك، وتكوين Apache لاستخدامها، وتعيين الشهادة للتجديد تلقائيًا في هذه الخطوة. إذا كان لا يزال لديك المزيد من الأسئلة بشأن استخدام Certbot، فيمكنك التحقق من وثائقهم، حيث ستجد ما تحتاج إلى معرفته كبداية.

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

LEAVE A COMMENT