شهادة Let's Encrypt SSL لا تتجدد تلقائيًا للمرة الثانية على التوالي

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

لا أرى أي دليل على وجود مهمة cron تعمل في أي مكان تحاول تجديد الشهادة. أفترض أنه يجب أن أبحث في الأماكن المختلفة على الجهاز المضيف، بدلاً من داخل حاوية Docker. هل أنا على صواب؟ يقول crontab -l “no crontab for root” ولا أرى شيئًا في /etc/cron*.

ونتيجة لذلك، لا يمكنني أن أشعر بالثقة فيما إذا كان خادمي (1) لا يحاول تجديد الشهادة أو (2) يحاول ويفشل. هل هناك أي شخص على استعداد لإرشادي خلال استكشاف أخطاء هذا وإصلاحها؟

لسوء الحظ، نظرًا لأنني قمت بحذف shared/standalone/{letsencrypt,ssl} لتوفير الشهادة من جديد، ليس لدي سجلات قديمة لأبحث فيها. كيف يمكنني على الأقل التحقق من تثبيت مهمة cron حتى أتمكن من التحقق من السجلات في المرة التالية التي يحاول فيها النظام تجديد الشهادة؟

شكرًا.

إعجابَين (2)

أعتقد أن هذه قد تكون آخر مرة حدث فيها هذا. كان هناك إصلاح في ديسمبر:

شكراً جزيلاً، ولكنني أفضل بشدة التحقق من الإعدادات لمعرفة ما إذا كان التجديد القادم مرجحاً. لا أعرف كيفية التحقق من تلك الإعدادات، لذا فهذه هي المساعدة التي أطلبها الآن.

على ما يبدو، يجب أن تكون هناك مهمة cron. أين هي؟ لا أرى أي مهمة مدرجة على الخادم الخاص بي. هل هذه ليست مهمة cron حقاً، بل مهمة مجدولة في Rails؟

لقد رأيت في /var/discourse/shared/standalone/letsencrypt/acme.sh.log (على النظام المضيف) أن Discourse تحقق من شهادة SSL الخاصة بي وكانت الاستجابة “لا تزال صالحة”، لذلك أفترض أن هذا دليل على أن Discourse ستحاول تجديد الشهادة في الوقت المحدد.

الآن أود أن أعرف كيف يتم تكوين مهمة “cron” هذه؟ هل هذه مهمة cron حقيقية على مستوى Linux أم مجرد مهمة مجدولة متكررة في Rails تستخدم شيئاً مثل whenever؟ هل يمكنني فحص هذا والتحقق منه دون البحث في الكود المصدري؟ هل يمكنني العثور على هذا باستخدام وحدة تحكم Rails أو أيًا كان ما يسمى في عام 2026؟ (لم أعمل في Rails منذ وقت طويل.)

شكراً.

أوه ومرحباً، لقد تعلمت أخيراً أن هذا الخلل يعود إلى اختصار سحري غير موثق وغير واضح للغاية، وغير متوقع على ما يبدو. “إذا بدأ بـ /، فيجب أن يكون تعبيراً نمطياً (regex).” أنا لا أفهم السياق بأكمله بعد، ولكن هذا ما يبدو عليه الأمر.

هذه هي ثقافة الكتابة الديناميكية (Duck Typing) بالنسبة لك: مرونة رائعة مع خطر أنه إذا لم تكتب الأشياء، فسيتعرض العملاء لمفاجأة. :wink:

يبدو أنه سيكون من الحكمة تعزيز Pups::ReplaceCommand للتحقق بشكل أكثر دقة مما إذا كان to يبدو كتعبير نمطي أم لا. أو أياً كان ما يفعله ويفترض أنه يجب عليه eval() شيئاً ما بدلاً من التعامل معه كنص الاستبدال.

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

على الأقل لدي فكرة أفضل عما يحدث، ولكن هذه المعرفة بدأت بالفعل في التدهور حتى قبل أن أنتهي من كتابة هذه الجملة. :person_shrugging: