نسخة Discourse في forum.abc.com.au: غير موجودة

تم تثبيت Discourse باستخدام الدليل الرسمي على GitHub
كل شيء سار على ما يرام، لكنني أواجه خطأ 502 عند محاولة الوصول إلى المنتدى.

حاولت فحص سجلات Rails للإنتاج، ولم أتمكن من رؤية أي سجلات production_error أو sidekiq.

لكنني لاحظت ما يلي عند استخدام أمر tail:
Creating scope :open. Overwriting existing method Poll.open.
Creating scope :open. Overwriting existing method Poll.open.
Can’t reach ‘/images/welcome/discourse-edit-post-animated.gif’ to get its dimension.

عند تشغيل أمر discourse doctor، يظهر ما يلي:
Discourse version at forum.abc.com.au: NOT FOUND

حاولت تعطيل SSL وإعادة بنائه، وتمكنت من الوصول إلى المنتدى بعد ذلك.

يجب أن تكون هناك مشكلة في SSL، ولا أستطيع تحديد سببها. أثناء تثبيت SSL، نجحت عملية حل عنوان IP للاتصال.

الرجاء المساعدة.

يبدو أنه قبل تمكين HTTPS، كنت قد ربطت بصور غير آمنة.

@pfaffman شكرًا لك على الرد.

إنها تثبيت جديد. لا توجد طريقة لربطها يدويًا

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

أولاً، رأيت هذا الخطأ في سجلات Nginx:

cannot load certificate "/shared/ssl/forum.abc.com.au.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

ثم حاولت التحقق من سجلات SSL:

forum.abc.com.au:Verify error:CAA record for forum.abc.com.au prevents issuance

قبل تشغيل سكريبت تثبيت Discourse لنطاق فرعي، يجب التحقق مما إذا كان النطاق الرئيسي يحتوي على سجلات CAA والتحقق من جهة إصدار الشهادات؛ فإذا لم تكن Let’s Encrypt (في حالتي، سجل CAA للنطاق الرئيسي هو comodoca.com)، فلن تُصدر شهادات Let’s Encrypt لـ Discourse.

الحل: يجب إضافة سجل CAA للنطاق الفرعي لـ Discourse كما هو موضح هنا
Acme:error:caa :: CAA record for ... prevents issuance - Help - Let's Encrypt Community Support

احذف ملفات الشهادة القديمة وحاول إعادة البناء مرة أخرى:

rm -rf /var/discourse/shared/standalone/ssl
rm -rf /var/discourse/shared/standalone/letsencrypt
./launcher rebuild app

إذا كنت تعرف طريقة لاختبار تلك السجلات لا تتطلب أي برامج إضافية، فسأفكر في جعل discourse-setup تختبرها، لكنني لم أرَ هذا من قبل.

عمل رائع في اكتشاف ذلك!

من المنطقي الافتراض أنه إذا كنت تملك نطاقًا وتعرف ما هو CAA، فقد تمكنت من تكوينه، وبالتالي فإنك تدرك آثار استخدام Let’s Encrypt.

@pfaffman
إصدار أمر dig caa {domain.tld} سيعيد السجل.
نرغب أولاً في التحقق مما إذا كان يعيد أي سجل،
ثم إذا عاد، نتحقق مما إذا كانت سلطة الإصدار غير letsencrypt.org.

لكن هذه حالة نادرة جدًا. لست متأكدًا مما إذا كنا نرغب في تضمين ذلك.

@ستيفن

صحيح. إذا كنت أملك نطاقًا، فأنا أعرف ما أفعله به.
كنت أساعد شخصًا ما، وقد تكون هذه المشكلة مرتبطة باستضافات تستخدم cPanel وتوفر شهادات SSL تلقائية من مزودين آخرين مثل Comodo. فهم يضيفون مجموعة من السجلات افتراضيًا عند إنشاء موقع (WordPress) في cPanel.

على أي حال، هذه حالة نادرة جدًا، وقد رأيتها لأول مرة.

نلاحظ ظهور CAA هنا بين الحين والآخر، وعادةً ما تكون الاستجابة الافتراضية التي نحصل عليها عندما نشير إلى أنهم قيدوا إصدار الشهادات لكل نطاقهم هي :man_facepalming:t2:

@ستيفن

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

هل يعني إصدار الشهادات المقيد للنطاق بأكمله، أي جميع النطاقات الفرعية الخاصة به؟

إذا قمت بتعيين سجل CAA لـ @ (النطاق)، فإن ذلك ينطبق على كل من النطاق الرئيسي والنطاقات الفرعية. يمكنك أيضًا إضافة سجل CAA محدد للنطاق الفرعي sub.domain.com لخدمة مثل Let’s Encrypt، مما سيحد من النطاق الذي يمكن لـ LE إصدار شهادة له.

إذن:

domain.com.    CAA   0 issue "comodoca.com"
sub.domain.com.    CAA   0  issue "letsencrypt.org"

يمكنك أيضًا تحديد issuewild بدلاً من issue للسماح لجهة إصدار الشهادات (CA) بإصدار شهادة واسعة النطاق (wildcard)، وتحديد iodef لربط عنوان بريد إلكتروني سيتم إخطاره في حال حدوث انتهاكات للسياسة.

نفس المشكلة هنا. لم تحل الأوامر المشكلة. لقد قمت بالتغيير إلى DNS و proxy الخاص بـ cloudflare. المشكلة مستمرة بالنسبة لي.

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

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

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

سؤال صريح: هل إعادة البناء لا تزال تطلب شهادة جديدة في كل مرة؟

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

وهو كذلك إذا لم يكن هناك شهادة صالحة.