كيفية إنشاء شهادات (ليتس انكريبت) العامة باستخدام سيرتبوت

How To Create Let's Encrypt Wildcard Certificates with Certbot

Let’s Encrypt هي سلطة مصادقة (CA) مجانية وآلية ومفتوحة المصدر توفر شهادات SSL/TLS لتفعيل HTTPS على موقع الويب الخاص بك. تسمح شهادات Let’s Encrypt العامة لك بتأمين نطاقات فرعية غير محدودة تحت نطاق أساسي (مثل *.example.com).

في هذا الدليل ، سنوضح لك كيفية استخدام Certbot لإنشاء شهادات Let’s Encrypt العامة وإعداد HTTPS على خادم ويب Nginx.

المتطلبات الأساسية

قبل اتباع هذا الدليل ، ستحتاج إلى:

  • خادم يعمل بنظام Ubuntu 20.04 مع عنوان IPv4 عام ومستخدم عادي بدون صلاحيات الجذر مع صلاحيات sudo.
  • أسماء النطاقات التي تشير إلى العنوان العام للخادم الخاص بك. في أمثلتنا ، سنستخدم example.com و *.example.com.
  • فتح المنافذ 80 و 443 على جدار حماية الخادم الخاص بك.
  • تثبيت Nginx على الخادم الخاص بك. إذا لم يكن مثبتًا بعد ، يمكنك تثبيته باستخدام:
$ sudo apt install nginx
  • تثبيت Certbot على الخادم الخاص بك. إذا لم يكن مثبتًا بعد، يمكنك تثبيته باستخدام:
$ sudo apt install certbot python3-certbot-nginx  

بمجرد استيفاء جميع المتطلبات الأساسية ، دعنا ننتقل إلى إنشاء الشهادات العامة.

الخطوة 1 – إنشاء شهادات عامة

يتضمن Certbot أمر certonly للحصول على شهادات SSL/TLS. لإنشاء شهادة عامة لـ *.example.com ، قم بتشغيل:

$ sudo certbot certonly --manual --preferred-challenges=dns --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.example.com

هذا يخبر Certbot بما يلي:

  • استخدام ملحق “manual” للحصول على الشهادات
  • استخدام تحدي “dns” للتحقق من ملكية النطاق
  • استخدام نقطة نهاية واجهة برمجة تطبيقات ACME v2 الخاصة بـ Let’s Encrypt
  • الموافقة على شروط الاستخدام الخاصة بـ Let’s Encrypt
  • الحصول على شهادة لـ *.example.com

سيُطلب منك إدخال عنوان البريد الإلكتروني لإشعارات انتهاء صلاحية الشهادة. أدخل بريدك الإلكتروني ثم اضغط على Enter.

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

سينتظر Certbot انتشار التغييرات العالمية في DNS والتحقق من سجلات TXT. عند النجاح ، سيتم حفظ شهادة البريد العام (fullchain.pem) والمفتاح الخاص (privkey.pem) تحت /etc/letsencrypt/live/example.com/.

الخطوة 2 – تكوين Nginx

مع إنشاء شهادة البريد العام ، يمكننا الآن تكوين Nginx.

أولاً ، قم بإنشاء كتلة خادم جديدة للنطاق الرئيسي example.com:

$ sudo nano /etc/nginx/sites-available/example.com

أضف التكوين التالي:

server {
        listen80;
        listen [::]:80;
        server_name example.com;
        return301 https://$host$request_uri;
}
server {
       listen443 ssl http2;
       listen [::]:443 ssl http2;
       server_name example.com;
       ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
       # تكوينات SSL أخرى
       ...
}

يقوم هذا بتكوين HTTPS باستخدام شهادة Let’s Encrypt وإعادة توجيه حركة مرور HTTP إلى HTTPS.

ثم قم بإنشاء كتلة خادم للنطاق الفرعي العام *.example.com:

$ sudo nano /etc/nginx/sites-available/wildcard.example.com
server {
  listen80;
  listen [::]:80;
  server_name*.example.com;
  return301 https://$host$request_uri;
}
server {
  listen443 ssl http2;
  listen [::]:443 ssl http2;
  server_name*.example.com;
  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
  # تكوينات SSL أخرى
  ...
}

سيتعامل هذا مع جميع النطاقات الفرعية باستخدام نفس شهادة البريد العام.

قم بتنشيط كتل الخادم:

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/wildcard.example.com /etc/nginx/sites-enabled/

أخيرًا ، اختبر تكوين Nginx وأعد تحميله إذا نجح:

$ sudo nginx -t
$ sudo systemctl reload nginx

يجب الآن أن تعمل شهادة البريد العام الخاصة بك! جرّب الوصول إلى موقعك عبر HTTPS والعديد من النطاقات الفرعية للتأكيد.

أتمتة التجديد

تنتهي صلاحية شهادات Let’s Encrypt بعد 90 يومًا ، لذلك ستحتاج إلى تجديدها بانتظام.

يمكنك أتمتة التجديد باستخدام أمر renew الخاص بـ Certbot. قم بإنشاء مهمة cron لتشغيلها يوميًا:

$ sudo crontab -e

أضف هذا السطر الذي سيقوم بتشغيل Certbot يوميًا وتجديده إذا كانت الشهادات ستنتهي صلاحيتها في أقل من 30 يومًا:

0 0 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

سيقوم هذا بتجديد شهاداتك تلقائيًا قبل انتهاء صلاحيتها!

الخلاصة

هذا هو! يجب أن يكون لديك الآن شهادات Let’s Encrypt العامة الصادرة عن Certbot معدة للنطاق الخاص بك. هذا يتيح لك تمكين HTTPS عبر النطاق الرئيسي وأي نطاقات فرعية باستخدام شهادة واحدة فقط.

ستتجدد الشهادات تلقائيًا ، مما يوفر حماية HTTPS مستمرة لموقعك. هذا يوفر لزوارك الأمان والثقة وفوائد تحسين محركات البحث.

نظرًا لأن Let’s Encrypt تصدر شهادات موثوقة مجانًا ، فلا داعي لعدم استخدام HTTPS في كل مكان مع شهادات البريد العام. استمتع بموقعك الآمن!

LEAVE A COMMENT