0Pricing
Cryptology Academy · درس

أتمتة Let's Encrypt وبروتوكول ACME

أتمتوا إصدار الشهادات وتجديدها باستخدام بروتوكول ACME مع Certbot وعملاء آخرين.

أتمتة Let's Encrypt وبروتوكول ACME درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مقدمة إلى Let's Encrypt

Let's Encrypt هي هيئة إصدار شهادات مجانية ومؤتمتة ومفتوحة تديرها Internet Security Research Group (ISRG)، وقد أُطلقت في إصدار تجريبي عام في ديسمبر 2015. أصدرت أكثر من 3 مليارات شهادة، وزادت اعتماد HTTPS على الويب بشكل كبير من خلال إزالة تكلفة وتعقيد الحصول على شهادات TLS موثوقة علنًا.

نظرة عامة على بروتوكول ACME

يحدد بروتوكول Automated Certificate Management Environment (ACME)، الذي اعتُمد معيارًا بوصفه RFC 8555 في عام 2019، كيفية إثبات العملاء ملكية النطاق تلقائيًا وتلقي الشهادات من هيئات إصدار الشهادات (CAs). يستبدل ACME عمليات التحقق اليدوية من النطاق بتبادل آلي موثّق تشفيريًا، مما يتيح إدارة دورة حياة الشهادات دون تدخل يدوي.

تحدي HTTP-01

يتحقق تحدي HTTP-01 من ملكية النطاق بإلزام عميل ACME بوضع ملف رمز مميز محدد في "http://DOMAIN/.well-known/acme-challenge/TOKEN". تجلب CA عنوان URL هذا للتحقق من الرمز. يتميز HTTP-01 بسهولة التنفيذ، لكنه يتطلب إمكانية الوصول إلى المنفذ 80 ولا يمكن استخدامه لشهادات wildcard.

تحدي DNS-01

يتحقق تحدي DNS-01 من ملكية النطاق بإلزام عميل ACME بإنشاء سجل DNS من نوع TXT في "_acme-challenge.DOMAIN" يحتوي على قيمة محددة. تستعلم CA من DNS للتحقق من السجل. DNS-01 هو نوع التحدي الوحيد الذي يدعم إصدار شهادات wildcard ("*.example.com")، كما يعمل حتى عندما تكون خوادم الويب خلف جدران حماية.

تحدي TLS-ALPN-01

يتحقق تحدي TLS-ALPN-01 من ملكية النطاق على طبقة TLS باستخدام معرّف بروتوكول ALPN مخصص هو "acme-tls/1". يقدّم عميل ACME مؤقتًا شهادة موقعة ذاتيًا تتضمن رمز التحدي في امتداد خاص على المنفذ 443. يعمل هذا التحدي من دون خادم ويب قيد التشغيل، ويدعم البيئات التي تستخدم موازنة التحميل.

عميل Certbot المرجعي

Certbot هو عميل ACME المرجعي لمؤسسة Electronic Frontier Foundation والمخصص لـ Let's Encrypt. يؤتمت دورة حياة الشهادة بالكامل: التحقق من النطاق، وإصدار الشهادة، والتجديد التلقائي. يتضمن Certbot إضافات لـ Apache وnginx تضبط إعدادات TLS تلقائيًا. يمكن تثبيته باستخدام "snap install --classic certbot" على توزيعات Linux الحديثة.

عملاء ACME بديلون

يوجد العديد من عملاء ACME، بالإضافة إلى Certbot، لتلبية حالات استخدام مختلفة. acme.sh هو عميل ACME مكتوب بالكامل على هيئة برنامج نصي لـ shell، ويُستخدم على نطاق واسع في البيئات خفيفة الوزن. يتضمن خادم الويب Caddy دعمًا مدمجًا لـ ACME ويجدد الشهادات تلقائيًا. أما Traefik، المستخدم في بيئات الحاويات، فيتعامل مع ACME من خلال إعداد certificatesResolvers الخاص به لأحمال العمل المستندة إلى الحاويات.

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

تتمتع شهادات Let's Encrypt بفترة صلاحية مدتها 90 يومًا عن قصد، لتشجيع الأتمتة وتقليل فترة التعرض الناتجة عن اختراق المفاتيح الخاصة. يثبّت Certbot مؤقت systemd أو مهمة cron تشغّل "certbot renew" مرتين يوميًا، فتجدد أي شهادة يتبقى على انتهائها 30 يومًا أو أقل. يُعد التجديد اليدوي ممارسة غير سليمة تؤدي إلى انقطاعات الخدمة.

حدود المعدل في Let's Encrypt

تفرض Let's Encrypt حدودًا للمعدل لمنع إساءة الاستخدام. وتتمثل الحدود الرئيسية في 50 شهادة لكل نطاق مسجل أسبوعيًا، و5 شهادات مكررة أسبوعيًا. كما تخضع محاولات التحقق الفاشلة، بمعدل 5 محاولات لكل اسم مضيف في الساعة، لحدود المعدل. أثناء التطوير، توفر بيئة Let's Encrypt التجريبية إصدارًا غير محدود للشهادات باستخدام CA اختبارية غير موثوقة علنًا.

الشهادات متعددة النطاقات وشهادات wildcard

يمكن لشهادة ACME واحدة أن تغطي نطاقات متعددة (Subject Alternative Names). يصدر الأمر "certbot --domains example.com,www.example.com,api.example.com" شهادة تحتوي على ثلاث قيم SAN. تتطلب شهادات wildcard ("*.example.com") التحقق باستخدام DNS-01، وتغطي جميع النطاقات الفرعية ذات المستوى الواحد. لا تغطي شهادات wildcard النطاق الجذر (example.com) نفسه، ولذلك تتطلب قيمة SAN إضافية.

ACME لبنية PKI الداخلية

لا يقتصر بروتوكول ACME على Let's Encrypt. إذ يمكن لهيئات إصدار الشهادات الداخلية مثل Step-CA (smallstep) وEJBCA وHashiCorp Vault إتاحة نقاط نهاية ACME لأتمتة الشهادات الداخلية. يتيح ذلك تطبيق إدارة دورة حياة الشهادات المؤتمتة نفسها، والمستخدمة في الخدمات المتاحة للعامة، على بنية mTLS التحتية الداخلية والخدمات الخاصة.

تحقق من تحديات ACME

ما نوع تحدي ACME المطلوب لإصدار شهادة wildcard مثل "*.example.com"؟

مراجعة الدرس: Let's Encrypt وACME

توفر Let's Encrypt شهادات مجانية عبر بروتوكول ACME (RFC 8555). تعمل تحديات HTTP-01 مع الشهادات غير wildcard على المنفذ 80. يتيح DNS-01 شهادات wildcard من خلال إثبات التحكم في منطقة DNS. يعمل TLS-ALPN-01 من دون خادم ويب. يؤتمت Certbot وacme.sh دورة الحياة بالكامل. تتطلب الشهادات الصالحة لمدة 90 يومًا الأتمتة. وتستدعي حدود المعدل استخدام البيئة التجريبية أثناء الاختبار.

الأسئلة الشائعة

هل درس «أتمتة Let's Encrypt وبروتوكول ACME» مجاني؟

نعم — نص درس «أتمتة Let's Encrypt وبروتوكول ACME» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «أتمتة Let's Encrypt وبروتوكول ACME»؟

أتمتوا إصدار الشهادات وتجديدها باستخدام بروتوكول ACME مع Certbot وعملاء آخرين. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أتمتة Let's Encrypt وبروتوكول ACME»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات سطر أوامر OpenSSL
  2. إنشاء سلاسل الشهادات وإدارتها
  3. OCSP Stapling وCertificate Transparency
  4. أتمتة Let's Encrypt وبروتوكول ACME
← العودة إلى Cryptology Academy