فشل Discourse في تجديد الشهادة

متابعة المحادثة من هنا:

هذه هي المرة الأولى التي أتلقى فيها تذكيرًا من Redsift بأن شهاداتي ستنتهي صلاحيتها في غضون أسبوع. عادةً ما يقوم Discourse بتجديد الشهادات قبل وقت طويل من انتهاء صلاحيتها. هذه المرة لم يحدث ذلك، قبل أن أبدأ في إعادة البناء (والتي من المفترض أن تحل المشكلة)، @Falco هل هناك أي شيء تريد مني التحقق منه ونشره هنا للمساعدة في الوصول إلى جذر سبب عدم تجديد الشهادات؟
الشهادة الجذرية هي ISRGX1 وهذه هي معلومات الشهادة منتهية الصلاحية:

الاسم الشائع (CN) E6
المنظمة (O) Let’s Encrypt
الوحدة التنظيمية (OU) <لم يكن جزءًا من الشهادة>
تم الإصدار في الأربعاء، 16 يوليو 2025، الساعة 7:36:45 مساءً
تنتهي الصلاحية في الثلاثاء، 14 أكتوبر 2025، الساعة 7:36:44 مساءً

الإصدار الحالي هو 3.6.0.beta1-dev (7ee52c8f85)

كانت هناك فترة زمنية تم فيها إعادة توجيه نقطة النهاية التي تحتاجها Let’s Encrypt. تم إصلاح ذلك إذا قمت بإعادة البناء.

5 إعجابات

ما هي المدة التقريبية التي يجب بعدها تجديد الشهادة بعد التحديث؟

إذا كانت الذاكرة لا تخونني، فإن الشهادات صالحة لمدة 3 أشهر، وسيتم الآن محاولة تجديدها تلقائيًا قبل ذلك.

إعجاب واحد (1)

نعم، أعرف كيف يفترض أن يعمل.

ولكن مرّ أكثر من يوم منذ أن قمت بتحديث برنامج المنتدى، ويبدو أن الشهادة لم يتم تحديثها بعد. أمامها 5 أيام قبل أن تنتهي صلاحيتها، لذا يجب تجديدها قريبًا.

أنا أستخدم فرع Discourse المستقر إذا كان ذلك يحدث فرقًا. هل من الممكن أن يكون إصلاح نقطة النهاية لم يتم نقله للخلف؟

بالنسبة لي، تم تحديث الشهادة على الفور بعد إعادة البناء

هل قمت بإعادة البناء عبر الويب أم عبر سطر الأوامر؟

إعجاب واحد (1)

نعم، كان الشرح هنا:

إعجاب واحد (1)

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

3 إعجابات

لقد مررنا بنفس تجربة عدم تجديد SSL.

سيكون من الرائع لو قام شخص ما بالتحقق المزدوج من أن web.ssl.template يتصرف بشكل صحيح على discourse-docker، ويبدو لي أن المنفذ 80 لم يكن يخدم أي من عناوين /.well-known/ التي يستخدمها Let’s Encrypt، وتم توجيه جميع عناوين URL إلى SSL بما في ذلك الملفات التجريبية التي وضعتها يدويًا في /var/www/discourse/public/.well-known/ . اضطررت إلى تحرير /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf مباشرة داخل حاوية التطبيق.

ربما بدأ هذا بعد commit ae4887a من discourse-docker؟

إعجاب واحد (1)

حدث خطأ آخر في المسار المعروف مؤخرًا.

متى كانت آخر مرة قمت فيها بإعادة بناء؟

إعجاب واحد (1)

حدث معي نفس الشيء. لم أتلق تحذيرًا بشأن انتهاء صلاحية الشهادة. الدخول إلى الخادم وتشغيل إعادة البناء /var/discourse % ./launcher rebuild قام بالمهمة.

إعجابَين (2)

في اختباري على تثبيت nginx عادي (1.18.0 ولكن أعتقد أنه نفس الشيء لـ 1.26.3)، فإن سطر تكوين nginx return 301 https://thehostname$request_uri; خارج نطاق location يتجاوز تمامًا أي كتلة location سابقة قبله، بدلاً من أن يكون بمثابة “catch-all”. أعتقد أن /.well-known/ لا يتم تقديمه ببساطة على المنفذ 80 ما لم يكن إعادة التوجيه 301 مخصصًا لموقع آخر مثل / في نهاية كتلة الخادم. هل يمكن أن تكون نفس مشكلة منشور stackoverflow هذا؟

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

إذا كنت تعتقد أن هذا هو Discourse، فربما يجب عليك الرد على التزام github أو فتح تقرير كبير جديد.

إعجاب واحد (1)