شهادة LetsEncrypt لا تتجدد

أهلاً بالجميع. انتهت صلاحية شهادة LetsEncrypt الخاصة بي مؤخرًا، في اليوم الرابع، وفشلت جميع محاولات تجديدها. لقد قرأت العديد من المشاركات هنا من أشخاص لديهم مشاكل مماثلة، ولكن لم ينجح أي من هذه الحلول (إعادة بناء الحاوية، تشغيل أوامر التجديد اليدوية، إلخ) بالنسبة لي.

باتباع قسم استكشاف الأخطاء وإصلاحها في الدليل، اكتشفت خطأ في سجلاتي (./launcher logs app):

[Fri Dec  6 05:30:05 PM UTC 2024] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Fri Dec  6 05:30:05 PM UTC 2024] Multi domain='DNS:discourse.[DOMAIN1].org,DNS:discourse.[DOMAIN1].org,DNS:[DOMAIN2].org'
[Fri Dec  6 05:30:05 PM UTC 2024] Getting domain auth token for each domain
[Fri Dec  6 05:30:07 PM UTC 2024] Getting webroot for domain='discourse.[DOMAIN1].org'
[Fri Dec  6 05:30:08 PM UTC 2024] Getting webroot for domain='discourse.[DOMAIN1].org'
[Fri Dec  6 05:30:08 PM UTC 2024] Getting webroot for domain='[DOMAIN2].org'
[Fri Dec  6 05:30:08 PM UTC 2024] Verifying: discourse.[DOMAIN1].org
[Fri Dec  6 05:30:08 PM UTC 2024] Pending, The CA is processing your order, please just wait. (1/30)
[Fri Dec  6 05:30:12 PM UTC 2024] Pending, The CA is processing your order, please just wait. (2/30)
[Fri Dec  6 05:30:15 PM UTC 2024] Pending, The CA is processing your order, please just wait. (3/30)
[Fri Dec  6 05:30:19 PM UTC 2024] Pending, The CA is processing your order, please just wait. (4/30)
[Fri Dec  6 05:30:22 PM UTC 2024] Success
[Fri Dec  6 05:30:22 PM UTC 2024] Verifying: discourse.[DOMAIN1].org
[Fri Dec  6 05:30:23 PM UTC 2024] Success
[Fri Dec  6 05:30:23 PM UTC 2024] Verifying: [DOMAIN2].org
[Fri Dec  6 05:30:23 PM UTC 2024] Pending, The CA is processing your order, please just wait. (1/30)
[Fri Dec  6 05:30:27 PM UTC 2024] [DOMAIN2].org:Verify error:198.49.23.145: Invalid response from http://[DOMAIN2].org/.well-known/acme-challenge/ohJAvgwBR81O8qmzsMPx-ZnmxoKOPAfuGCz0VZJeFWk: 404
[Fri Dec  6 05:30:27 PM UTC 2024] Please check log file for more details: /shared/letsencrypt/acme.sh.log
CN = discourse.[DOMAIN1].org
error 10 at 0 depth lookup: certificate has expired
error fullchain.cer: verification failed

أولاً، لماذا يظهر نطاقان هنا؟ أنا بحاجة فقط إلى شهادة على DOMAIN1، وهو النطاق الذي يعيش عليه مثيل Discourse الخاص بنا. DOMAIN2 هو مضيف ترحيل SMTP الخاص بنا، ولديه شهادة بالفعل.

ثانياً، ملف سجل LetsEncrypt المذكور (/shared/letsencrypt/acme.sh.log) غير موجود، أو على الأقل لا يمكنني العثور عليه في الموقع الذي يشير إليه.

والأهم من ذلك، هل هناك طريقة لجعل البرنامج النصي يتوقف عن البحث في DOMAIN2، ويقوم فقط بتجديد الشهادة بنجاح على DOMAIN1؟

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

هل هذا تثبيت قياسي؟ هل لديك وكيل عكسي؟

نحن نعمل على قطرة Digital Ocean، تم تثبيتها باستخدام البرنامج النصي الخاص بهم، ولكن يبدو أن هذا لا يزال ما تعتبره تثبيتًا قياسيًا. تدير Cloudflare نظام أسماء النطاقات (DNS)، ولكن السحابة البرتقالية معطلة. لا يوجد وكيل عكسي على حد علمي.

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

عنوان IP هذا ليس خاصًا بـ discourse. هل نظام أسماء النطاقات لديك معطل؟ هل لديك سجلات A متعددة؟

ما هو اسم المضيف الخاص بك؟

صحيح. عنوان IP هذا ينتمي إلى [DOMAIN2]، وهو نطاق آخر نمتلكه ولا علاقة له بـ Discourse، وهذا يعود إلى سؤالي الأصلي حول سبب ظهور هذا النطاق وعنوان IP في السجلات؟

نظام أسماء النطاقات يعمل بشكل جيد. لا يزال بإمكاني الوصول إلى الموقع إذا تجاوزت تحذير المتصفح بشأن الشهادة منتهية الصلاحية. موقعنا الآخر غير الخاص بـ Discourse يعمل بشكل جيد أيضًا. اسم المضيف الخاص بنا (الخاص بـ Discourse، وليس الآخر) هو discourse.gomomentum.org.

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

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

باختصار: لقد أخبرت Let’s Encrypt بالحصول على شهادات لنطاقك الأساسي بالإضافة إلى نطاق Discourse، وفي وقت لاحق قمت بتغيير نظام أسماء النطاقات (DNS) للنطاق الأساسي ليشير إلى موقعك الآخر.

والنسخة الأطول . . .

في أحد الأيام، أردت أن يتعامل Discourse مع الطلبات ليس فقط لـ discourse.gomomentum.org ولكن أيضًا لـ gomomentum.org، لذلك أضفت مقطعًا إلى ملف app.yml الخاص بك كما هو موضح هنا: Set up Let’s Encrypt with multiple domains / redirects

لذلك، تحققت طلبات Let’s Encrypt من أن كلا هذين النطاقين كانا يشيران في الأصل إلى خادم Discourse الخاص بك.

وهذا يفسر سبب وصول تلك الطلبات لـ SOME OTHER DOMAIN إلى Let’s Encrypt.

ثم، في يوم آخر، ربما بعد سنوات، ولكن في وقت ما خلال الأشهر الثلاثة الماضية، قرر شخص ما أن gomomentum.org يجب أن يشير إلى موقعك الرئيسي وليس إلى موقع Discourse بعد الآن. وعند تلك النقطة، توقف Let’s Encrypt عن العمل، لكن الشهادات تستمر لمدة 3 أشهر، لذلك بحلول الوقت الذي حدث فيه ذلك، كان من المستحيل تقريبًا ربط تغيير نظام أسماء النطاقات (DNS) بفشل تجديد الشهادة هذا في العمل.

لقد قمت بإزالة هذا المقطع من ملف app.yml الخاص بك وأعدت البناء، وعادت الأمور إلى العمل!

3 إعجابات

:face_palm: بالفعل، أتذكر الآن، لقد رَكَّزتُ كثيرًا على إعدادات النطاق عندما كنتُ أواجه مشاكل البريد الإلكتروني قبل بضعة أشهر. يبدو أن هذا تأثير جانبي غير مقصود لجميع التخمينات التي قمت بها آنذاك. شكرًا لك، جاي!

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