تجديد SSL LetsEncrypt لا يعمل (بسبب reverse proxy إضافي من الخارج)

انتهت صلاحية الشهادة الخاصة بنسخة Discourse الخاصة بي اليوم، ويظهر خطأ في المتصفح. حاولت تجديد الشهادة يدويًا وفقًا للإرشادات التالية:

أظهرت العملية أن الشهادة تم تجديدها، ويمكنني رؤيتها في المجلد /shared/letsencrypt، وقد تم التجديد بشكل صحيح. قمت بإعادة تشغيل nginx داخل Docker، وأعدت بناء النسخة (rebuild)، ومع ذلك يبدو أنها لا تزال ترسل الشهادة القديمة.

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

هل فاتني شيء؟

لقد قمت بنفس التعليمات قبل 15 يومًا.

cd /var/discourse
./launcher enter app
"/shared/letsencrypt"/acme.sh --cron --home "/shared/letsencrypt" --force
exit

أول شيء تعلمته هو أنه إذا قمت بعرض الشهادة عبر Chrome، فقد تظهر غير صالحة بينما هي في الواقع صالحة. انظر: خطأ في Chrome / Chromium: تظهر شهادات SSL تواريخًا غير صحيحة (منتهية الصلاحية)

ثم جربت

me@site:/var/discourse$ sudo ./launcher rebuild app

وهو ما لم ينجح، وفي النهاية

sudo reboot

بعدها عمل الموقع كما هو متوقع.


في حين أنني ألاحظ الخطوة المتعلقة بـ rebuild، إلا أنني لست متأكدًا مما إذا كانت ضرورية، لكنها كانت خطوة قمت بها أثناء العملية.

بعد محاولات استمرت لساعات، وفور نشري لهذا المنشور، أدركت أنه نظرًا لاستخدامي لنشر متعدد المواقع مع عكس موجه nginx، كان عليّ أيضًا إعادة تشغيل خادم nginx الخارجي، فبدأ العمل فورًا. سأشير إلى هذا كإجابة، في حال تعرض شخص آخر لهذه الحالة.

أعتقد أن أمر sudo reboot النهائي قد نجح معك لأنه أعاد تشغيل nginx - وهو ما نشرته في حلّي أعلاه.

بعض الملاحظات حول هذا:

  • في الحالة المذكورة، لا يُظهر المتصفح فعليًا أنها غير صالحة في شريط العنوان
  • اعتمادًا على نظام التشغيل، قد لا يظهر تحذيرًا بشأن تاريخ الشهادة إذا قمت بمراجعتها

هل عثرت على السبب الجذري لعدم تجديد الشهادة تلقائيًا؟

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

image

السبب في تعليق البريد الإلكتروني هو أنه جزء من عملية استعادة قاعدة البيانات، وفي الحالة المحددة، تم استعادتها من مثيل آخر من Discourse.

تم تعطيل البريد الإلكتروني لمنع موقعين من إرسال نفس رسائل البريد الإلكتروني.

السبيل الوحيد الذي تتدخل فيه البريد الإلكتروني في العملية مطلقًا هو أن LE قد ترسل لك تنبيهًا إذا كانت شهادتك على وشك الانتهاء ولم تقم بتجديدها

[اقتباس=“supermathie، المشاركة: 7، الموضوع: 164236”]
الطريقة الوحيدة التي يشارك بها البريد الإلكتروني في العملية على الإطلاق هي أن LE قد يرسل لك تحذيرًا إذا كانت شهادتك على وشك الانتهاء ولم تجددها
[/اقتباس]

حسنًا. شكرًا. الآن يجب أن أجد السبب الجذري لعدم تجديد الشهادة تلقائيًا.

أي سبب لعدم تجديد الشهادة؟

عادةً ما تكون التعديلات المخصصة هي التي تعطل العملية بشكل غير متوقع. أنصحك بفتح موضوع جديد تعرض فيه تفاصيلك وما قمت به.