فشل وظائف البريد الإلكتروني بعد آخر تحديث، فشل التحقق من الشهادة (تعذر الحصول على شهادة المصدر المحلي)

عذرًا على سؤال آخر مكرر، حيث يمكنني رؤية العديد من طلبات الدعم المماثلة لهذا، على سبيل المثال: Email Notifications Failing after Update ، ولكن رسالة الخطأ لدينا مختلفة قليلاً:

“فشل التحقق من الشهادة (غير قادر على الحصول على شهادة المُصدر المحلي)”

هذا بعد التحديث في 11 مايو إلى 2.9.0
من الإصدار: a76256756fc8442eab960cc1c7d37a737efb5a69،
المستودع: /var/www/discourse، /var/www/discourse/plugins/styleguide

والذي يمكنني رؤيته على GitHub يؤثر على sidekiq - هل أصبح أكثر انتقائية فجأة؟ أنا أيضًا أتعامل مع هذا الأمر مع خادم البريد الخاص بنا، ولكن إذا كان بإمكاني تزويدهم بمعلومات أكثر تحديدًا حول كيفية إصلاح ذلك، أو إذا كان الأمر يتعلق بالمنتدى الخاص بي (https://forum.solarfarmer.dnv.com/)، فسيساعدنا ذلك في استكشاف الأخطاء وإصلاحها بشكل أسرع.

شكرًا على أي مساعدة.

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

هذه هي نفس مشكلة Email Hostname Certificate Mismatch Causing sidekiq Queue Overload, Severe Site Instability

3 إعجابات

@RGJ لقد حاولت تشغيل

openssl s_client -connect smtp.mydomain.info:25 -starttls smtp -showcerts 2>&1|grep "depth=0"

ولكنه لا يُظهر أي نطاقات أخرى، بل يقول نفس الخطأ الذي يظهر في Sidekiq: “unable to get local issuer certificate” (غير قادر على الحصول على شهادة المُصدر المحلي) والكثير من الأشياء الأخرى. لقد حاولت تغيير إعدادات البريد الإلكتروني في app.yml إلى وإلى خادم البريد الوسيط الخاص بنا، وتشغيل ./launcher rebuild app في كل مرة، ولكن لم ينجح أي شيء حتى الآن.

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

هناك ثلاثة أسباب محتملة لذلك:

  • شهادة منتهية الصلاحية
  • اسم المضيف في الشهادة مختلف عن اسم المضيف الذي تتصل به
  • لا توجد شهادة على الإطلاق

يبدو أنك تواجه الحالة الأخيرة. الحل الوحيد هو التأكد من أن لديك خادم SMTP مُكوَّن بشكل صحيح، يدعم STARTTLS ولديه شهادة صحيحة.

3 إعجابات

شكرًا @RGJ - ولكن لماذا بدأت هذه المشكلة فقط بعد الترقية إلى الإصدار 2.9.0؟ هل هذا لأن STARTTLS أصبح أكثر صرامة في فرض هذا المتطلب. لم يتغير شيء بالنسبة لخادم البريد الخاص بنا أو في إعدادات البريد في app.yml. عنوان IP للموقع مدرج في القائمة البيضاء مع خادم البريد الذي تديره إدارة تكنولوجيا المعلومات. ليس لدي أي سيطرة عليه. يتم التحكم في اسم CNAME للموقع أيضًا بواسطة قسم تكنولوجيا المعلومات لدينا. لديهم نطاقات مختلفة، اسم CNAME هو “dnv.com” وخادم البريد هو “dnvgl.com” هل هذا جزء من المشكلة؟ أنا أتابع هذا بالتوازي مع قسم تكنولوجيا المعلومات لدينا، ولكن أحاول تزويدهم بأكبر قدر ممكن من المعلومات. أعتذر عن جهلي، الكثير من هذا يفوق فهمي، لذلك قد أستخدم مصطلحات غير صحيحة. آسف :frowning:

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

نظرًا لوجود تغيير حيث قامت Discourse بالترقية إلى Rails 7 بين 2.9.0.beta3 و beta4، مما أدى إلى حدوث ذلك.

راجع Email Hostname Certificate Mismatch Causing sidekiq Queue Overload, Severe Site Instability - #47 by RGJ

3 إعجابات

قسم تكنولوجيا المعلومات لدينا يقول: “لا يوجد خطأ في الشهادات [لترحيل البريد]، كلها نشطة وتم تكوينها بشكل صحيح لاستخدامها مع خدمة SMTP. ثانيًا - لم أسمع عن أي مشاكل من أي خدمات/عملاء آخرين يستخدمون ترحيل البريد هذا.” :cry:

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

لقد أنشأ قسم تكنولوجيا المعلومات حساب بريد إلكتروني جديد باستخدام office365 على microsoft، لكنني ما زلت أواجه مشكلات. الآن أحصل إما على ReadTimeout أو SMTPAuthenticationError: Unrecognized authentication type

التكوين الحالي الخاص بي:

DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: myusername
DISCOURSE_SMTP_PASSWORD: "mypassword"  # هل الأقواس ضرورية؟
DISCOURSE_SMTP_ENABLE_START_TLS: true  # هل هذا صحيح؟
DISCOURSE_SMTP_DOMAIN: outlook.com
DISCOURSE_NOTIFICATION_EMAIL: myusername@mycompany.onmicrosoft.com

حيث تشير علامة * إلى تفاصيل حساب البريد الإلكتروني الجديد.

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

@RGJ أود أن أشكر الجميع على مساعدتهم. لقد تمكنت أخيرًا، أخيرًا من حل هذه المشكلة. الإعداد الخاص بـ office365 هو استخدام DISCOURSE_SMTP_AUTHENTICATION: login.

إعدادات خادم ومنفذ office365 smtp هي smtp.office365.com:587 مع تمكين STARTTLS، وهو الإعداد الافتراضي على أي حال.

واسم المستخدم هو عنوان البريد الإلكتروني الكامل في المؤسسة التي تستخدم office365، وعادة ما يكون myaccount@mycompany.onmicrosoft.com. قد يكون هذا هو نفسه عنوان بريدك الإلكتروني للإشعارات أو لا.

إليك الإعداد النهائي الخاص بي:


  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: myacct@mycompany.onmicrosoft.com
  DISCOURSE_SMTP_PASSWORD: mypassword
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: outlook.com
  DISCOURSE_NOTIFICATION_EMAIL: myacct@mycompany.com
  DISCOURSE_SMTP_AUTHENTICATION: login

وفقًا لـ Mail Tester، النتيجة هي 10 من 10!

إعجابَين (2)

نواجه نفس المشكلة هنا مع خادم SMTP مُعد بشكل صحيح تستخدمه عشرات الخدمات الأخرى. يستخدم خادم SMTP شهادة wildcard صادرة من Let’s Encrypt.
يقول الخطأ: “(unable to get local issuer certificate)”

أعتقد أن هذه مشكلة كما هو موضح في Disabling starttls or certificate verification does not work any more
باستثناء أنك تقول إن لديك شهادة صالحة. لذلك قد أكون مخطئًا.

حاول التحقق من اسم النطاق باستخدام الأوامر التي أوصى بها @RGJ

openssl s_client -connect smtp.mydomain.info:25 -starttls smtp -showcerts 2>&1|grep "depth=0"

تأكد من أن نطاقك يطابق الشهادة التي تم إرجاعها من openssl إن وجدت. تحقق أيضًا من هذا الموضوع “عدم تطابق شهادة اسم المضيف للبريد الإلكتروني يسبب sidekiq…” المرتبط أعلاه.

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

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.