رموز المواقع، الصور الرمزية، وأخطاء الشهادات

مرحبًا!

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

خطوات إعادة الإنتاج

  • إعداد الخادم يسير بسلاسة
  • تمرير المعالج يسير بشكل جيد، ويتم تحميل جميع الصور وعرضها كما هو متوقع
  • يتلقى المستخدم رابط التسجيل، ينقر عليه للمتابعة، ويتم التسجيل بنجاح
  • (هنا تبدأ الأمور في الانحراف) يسجل المستخدم الدخول وتظهر شعارات الموقع مكسورة — تظهر فقط عناوين النصوص
  • لا يمكن للمستخدم رفع/تعيين صورة شخصية مخصصة
  • يشكو شهادة الموقع من أن الموقع غير آمن
  • لسبب ما، هذا يؤثر فقط على المتصفح المستخدم للتسجيل، ومعدل الفشل أعلى بكثير في Chrome

استكشاف الأخطاء وإصلاحها

  • حاولنا إخبار المستخدمين بتفريغ ذاكرة التخزين المؤقت للمتصفح وملفات تعريف الارتباط — لا يزال الأمر معطلاً
  • طلبنا من المستخدمين إعادة تثبيت المتصفحات، معظمها Chrome — لا يزال الأمر معطلاً
  • طلبنا من الناس استخدام هوية بديلة في Chrome أو تجربة متصفح آخر (Safari، Firefox، إلخ) — يعمل!

ليس لدينا أي فكرة على الإطلاق عن سبب عمل العنصر الأخير ولماذا هوية التسجيل الأصلية معطلة. لن يكون من المقبول السماح لمستخدمينا (حوالي 600-700 مستخدم) بتسجيل الخروج من هوية Chrome الخاصة بهم ثم تسجيل الدخول مرة أخرى — إذا كان هذا هو الحل بالفعل.

أي أفكار؟

تحياتي،
مارك

هل التثبيت القياسي يستغرق 30 دقيقة؟ أم أن هناك شيئًا مخصصًا هنا؟

هل قمت بتفعيل force_https في إعدادات الموقع لمعرفة ما إذا كان ذلك سيحل المشكلة؟

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

مرحبًا بهنو،

  • تثبيت قياسي مدته 30 دقيقة
  • لا يوجد شيء مخصص
  • لم يتم تمكين force_https، ولكن كما ذكرت، تؤثر هذه المشكلة فقط على المتصفح المستخدم في التسجيل

جرب تفعيل force_https، فأنا متأكد بنسبة 99% من أنها ستحل هذه المشكلة لك.

حسنًا. جميع حالات التثبيت تحصل على شهادتها من وكيل عكسي Nginx ليس على نفس الجهاز. هل سيظل force_https يُحدث فرقًا؟

إذن هذا ليس تثبيتًا قياسيًا. لقد قلت إنه كذلك.

إذا كان Discourse خلف وكيل عكسي مُهيأ بشكل صحيح، فإن force_https ستحدث فرقًا بالتأكيد. الإعداد يخبر Discourse بشكل أساسي بتحميل جميع الموارد والأصول عبر HTTPS.

حسناً، أعتذر عن ذلك.

إذن، هل نتحدث عن force_https في ملف app.yml أم في كتلة خادم Nginx الخاصة بي؟

أنا أقوم بالفعل بتمرير حركة المرور بشكل صحيح، لكنني لا أرى الخاصية في ملف yml.

لا شيء من ذلك.

force_https هو إعداد للموقع يجب تفعيله في منطقة الإدارة.

هل قد يؤدي ذلك إلى منعي من الدخول؟

ما لم تكن وكيل العكس الخاص بك مُعدًا بشكل غير صحيح، فلا داعي للقلق على الإطلاق هنا.

إذا لم تكن متأكدًا من إعداد وكيل العكس، فراجع هذا الإعداد وقارنه بإعدادك:

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

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

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

العنصر الوحيد الذي يختلف فيه تكويني هو أنني لا أستخدم templates.yml.

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

حسناً، غريب. لم أقم بتغيير أي شيء. جميع الصور تعمل بشكل ممتاز تماماً. نقطة.

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

قد يكون ذلك بسبب ذاكرة التخزين المؤقت للمتصفح أو شهادة غير مُعدّة بشكل صحيح. هل حصلت على شهادة SSL من Let’s Encrypt أم شهادة أخرى؟

إنه Let’s Encrypt عبر Certbot. الشهادة سارية. أعتقد أن المشكلة في ذاكرة التخزين المؤقت للمتصفح.

جرب التسجيل في وضع التصفح المتخفي. هل لا تزال تظهر لك رسالة خطأ؟

وثمة شيء أفترض أنه مشبوه هنا. هل تستخدم نوعًا ما من المصادقة الخارجية؟ (تسجيل الدخول عبر الشبكات الاجتماعية / SSO إلخ.)

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

هل يمكنك مشاركة رابط لتثبيت واحد من هذا القبيل؟

هل اعتمدت إعدادات nginx الخاصة بك على ما ورد هنا؟

تأكد من أنك ترسل X-Forwarded-Proto.