bg-tutorials

كيفية تثبيت شهادة ACME SSL على Apache و NGINX

إذا كنت تقوم بتشغيل خادم ويب، فإن تأمينه باستخدام HTTPS هو معيار أساسي. بفضل بروتوكول ACME (بيئة الإدارة الآلية للشهادات)، يمكنك أتمتة إصدار شهادة SSL وتجديدها من خلال أدوات مثل Certbot.

ACME SSL على Apache و Nginx

في هذا الدليل، ستتعلم في هذا الدليل كيفية تثبيت شهادة ACME على Apache و NGINX باستخدام Certbot عبر توزيعات لينكس المختلفة. سنغطي الأنظمة المستندة إلى دبيان والأنظمة المستندة إلى RHEL، وسنقوم بتضمين توضيحات عند الحاجة، وسنوجهك خلال كل شيء بدءًا من التثبيت وحتى التجديد التلقائي.


قبل أن تبدأ

قبل البدء، تحقق من ذلك:

  • لديك صلاحية وصول سودو أو الجذر إلى الخادم الخاص بك
  • يشير اسم النطاق الخاص بك إلى عنوان IP العام لخادمك عبر DNS
  • المنفذان 80 و443 مفتوحان في جدار الحماية أو مجموعة أمان مزود السحابة
  • نظامك محدث ومدعوم

الخطوة 1 – تثبيت Certbot على نظام التشغيل الخاص بك

Certbot هو عميل ACME الذي سنستخدمه لطلب شهادات SSL وتجديدها. سنستعرض تعليمات الإعداد لكل نظام تشغيل مدعوم. اختر النظام الذي يطابق خادمك.

إصدارات Ubuntu LTS مع APT

حدِّث الحزم وثبِّت Certbot مع ملحق خادم الويب المفضل لديك:

أباتشي:

sudo apt update
sudo apt install certbot python3-certbot-apache

NGINX:

sudo apt update
sudo apt install certbot python3-certbot-nginx

أنظمة دبيان مع دعم APT

نفس عملية Ubuntu:

sudo apt update
sudo apt install certbot python3-certbot-apache # for Apache
sudo apt install certbot python3-certbot-nginx # for NGINX

على أنظمة دبيان، يعد تثبيت Certbot عبر APT هو الخيار الأكثر سهولة. إذا كنت تفضل استخدام Snap (للحصول على أحدث إصدار)، مرر لأسفل إلى قسم Snap أدناه.

ألما لينكس أو روكي لينكس (متوافق مع RHEL)

قم بتمكين مستودع EPEL أولاً:

sudo dnf install epel-release
sudo dnf update

ثم قم بتثبيت Certbot مع الإضافة التي تختارها:

أباتشي:

sudo dnf install certbot python3-certbot-apache

NGINX:

sudo dnf install certbot python3-certbot-nginx

البديل: تثبيت Certbot عبر Snap (جميع الأنظمة)

إذا كنت تريد أحدث إصدار مباشرة من المصدر، فاستخدم Snap.

1. قم بتثبيت Snap (إذا لم يكن مثبتًا بالفعل):

sudo apt install snapd # Ubuntu/Debian
sudo dnf install snapd # AlmaLinux/Rocky

2. قم بتثبيت Certbot وربطه:

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

اختياري: تثبيت Certbot باستخدام النقطة (للإعدادات المخصصة)

هذا الأسلوب مخصص للمستخدمين المتقدمين أو البيئات المخصصة التي لا تتوفر فيها حزم Snap أو نظام التشغيل. يجب عليك استخدامها فقط في الحالات التالية:

  • أنت تقوم بتشغيل Certbot في بيئة افتراضية
  • أنت تعمل مع الحد الأدنى من الحاويات
  • نظام التشغيل الخاص بك لا يدعم snapd أو apt أو dnf بشكل نظيف

لتثبيت Certbot باستخدام النقطة:

python3 -m pip install --upgrade certbot

يقوم هذا بتثبيت أداة Certbot الأساسية، ولكنه لن يقوم بإعداد التجديد التلقائي، ولا يقوم بتثبيت إضافات Apache أو NGINX. ستحتاج إلى تهيئة كل شيء يدويًا

إذا لم تكن متأكدًا مما يعنيه ذلك، فارجع واستخدم تعليمات APT أو DNF أو Snap بدلاً من ذلك.

يمكنك أيضًا تثبيت الإضافات (مثل إضافة NGINX) باستخدام pip:

python3 -m pip install certbot-nginx

استخدم النقطة فقط إذا كانت بيئة نظامك تتطلب تحكمًا كاملاً أو عزلاً تامًا.


الخطوة 2 – طلب شهادة ACME الخاصة بك وتثبيتها

هناك طريقتان رئيسيتان: آلية بالكامل أو خاصة بالموفر باستخدام بيانات اعتماد EAB (ربط الحساب الخارجي). كلاهما مذكور أدناه.

الخيار أ: مؤتمت بالكامل (ACME قياسي)

دع Certbot يتعامل مع كل شيء – الطلب، والتحقق، والتثبيت، والتثبيت، وإعادة تحميل تهيئة الخادم الخاص بك.

أباتشي:

sudo certbot --apache

NGINX:

sudo certbot --nginx

سيُطلب منك

  • النطاق (النطاقات) التي يجب تأمينها
  • ما إذا كان يجب إعادة توجيه كل حركة مرور HTTP إلى HTTPS
  • بريدك الإلكتروني للتذكير بالتجديد

يهتم Certbot بالتحقق من الصحة وتهيئة خادم الويب خلف الكواليس.

الخيار ب: استخدام موفر ACME خارجي (مثل Sectigo) مع EAB

إذا كان الموفر الخاص بك يتطلب ربط حساب خارجي، فاستخدم هذه الطريقة:

sudo certbot --nginx \
--non-interactive \
--agree-tos \
--email [email protected] \
--server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--domain example.com \
--domain www.example.com \
--cert-name my-website-cert

استبدل --nginx بـ --apache لإعداد Apache.

ستحصل على --eab-kid و --eab-hmac-key من مزود الشهادة عند تسجيل حساب ACME.

الخيار ج: استخدام Certbot في الوضع اليدوي

إذا كنت لا تريد أن يقوم Certbot بتعديل تكوين خادم الويب الخاص بك، أو إذا كنت تستخدم إعدادًا مخصصًا، فيمكنك طلب شهادة يدويًا.

إليك كيفية القيام بذلك باستخدام طريقة webroot:

sudo certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-d www.example.com \
--email [email protected] \
--agree-tos \
--non-interactive

  • -كرتونلي يخبر Certbot بإصدار الشهادة دون تثبيتها
  • -w يحدد الدليل الجذر لموقعك على الويب (يجب أن يكون متاحًا للعامة عبر المنفذ 80)

بعد الإصدار، قم بتكوين خادم الويب يدويًا باستخدام ملفات الشهادة الموجودة في:

/etc/letsencrypt/live/yourdomain.com/

ملاحظة: يتم استخدام هذا المسار بغض النظر عن موفر ACME الذي تختاره، ما لم تتجاوز دليل التخزين باستخدام العلامات المتقدمة (– التكوين-دير، –موجه العمل).

تأكد من إعادة تحميل خادم الويب الخاص بك بعد تطبيق مسارات الشهادات على التهيئة.


الخطوة 3 – تحقق من أن كل شيء يعمل

قم بزيارة نطاقك في متصفح. يجب أن ترى القفل الآمن أو مجرد تحميل الصفحة بنجاح على متصفح كروم. للتحقق مرة أخرى من تشغيل الخادم:

sudo systemctl status apache2 # Debian/Ubuntu (Apache)
sudo systemctl status httpd # AlmaLinux/Rocky (Apache)
sudo systemctl status nginx # All systems (NGINX)

وفحص الشهادة من المحطة الطرفية:

openssl s_client -connect yourdomain.com:443

ابحث عن التواريخ الصالحة واسم الموفر CA الخاص بك في الإخراج.


الخطوة 4 – إعداد التجديد التلقائي

يدعم بروتوكول ACME التجديد التلقائي للشهادة، وقد تم تصميم Certbot للتعامل مع هذا الأمر بسلاسة من خلال مؤقت Systemd المدمج أو مهمة cron. ومع ذلك، يعتمد سلوك التجديد على مزود الشهادة الخاص بك:

تُصدر المراجع المصدقة المجانية (مثل Let’s Encrypt) شهادات صالحة لمدة 90 يومًا وتدعم عمليات التحقق من التجديد المتكررة.

غالبًا ما تصدر المراجع المصدقة التجارية (مثل Sectigo أو Digicert) شهادات صالحة لمدة عام واحد عبر ACME، ولكنها لا تزال تتبع عملية تجديد ACME. تتعامل Certbot مع هذه الشهادات تلقائيًا أيضًا، ولكن بشكل أقل تكرارًا.

تحقق من أن التجديد مجدول

يقوم Certbot بإعداد مؤقت النظام أو وظيفة cron بشكل افتراضي. يمكنك التأكد من أنه نشط باستخدام:

systemctl list-timers | grep certbot

وهذا يضمن أن يقوم Certbot بفحص شهاداتك بانتظام (عادةً مرتين في اليوم) وتجديدها فقط عندما تكون ضمن نافذة التجديد (عادةً قبل 30 يومًا من انتهاء الصلاحية).


الكلمات الأخيرة

يجعل Certbot وبروتوكول ACME إدارة SSL بسيطة. يمنحك هذا الدليل كل ما تحتاجه لتثبيت شهادة ACME على Apache و NGINX مع التجديد التلقائي والتحقق الواضح والتحكم الكامل عند الحاجة.

وفِّر 10% على شهادات SSL عند الطلب اليوم!

إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

صورة مفصلة لتنين أثناء طيرانه

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