إصلاح أخطاء إثبات WOPI عن طريق فحص المفاتيح والاكتشاف وعناوين URL

عندما يُبلغ مُضيف WOPI عن "فشل التحقق من صحة الإثبات" أو "إثبات WOPI غير صالح"، تأكد أولاً من النظام الذي سجل الرفض. إذا كان مُضيف التخزين يرفض طلب Collabora المُوقّع، فتحقق من زوج مفتاح الإثبات واستجابة الاكتشاف قبل تغيير قوائم السماح لمُضيف WOPI أو تعطيل عمليات التحقق من الإثبات. بالنسبة لتثبيتات الحزم، يُنشئ Collabora عادةً زوج المفاتيح؛ أما بالنسبة لـ Docker وKubernetes وعمليات النشر متعددة النسخ، فيجب توفير الزوج وحفظه باستمرار.

حدد الفحص الفاشل قبل تغيير المفاتيح

تعتمد عملية التحقق من صحة إثبات WOPI على طلب مُوقّع والمفتاح العام الذي يُعلنه عميل WOPI في بيانات التعريف الخاصة به. وهي عملية منفصلة عن قائمة مضيفي WOPI الموثوق بهم في Collabora، والتحقق من صحة شهادة TLS، وفحص رمز الوصول الخاص بمضيف التخزين. قد يُفيد إعادة إنشاء المفتاح في حال فقدان المفتاح الخاص أو عدم تطابقه مع المفتاح العام المُعلن عنه، ولكن قد يُؤدي ذلك إلى عدم تطابق جديد إذا تغيّرت نسخة واحدة فقط أو إذا كان لدى المضيف بيانات اكتشاف مُخزّنة مؤقتًا.

يسجل سجل مضيف التخزين طلب CheckFileInfo مرفوضًا مع دليل WOPI غير صالح.
تشير رسالة التحقق من عدم الصلاحية من جانب المضيف أولاً إلى اكتشاف المفتاح أو بناء التوقيع أو وقت الطلب.
الأدلة في السجلالمنطقة المحتملة للتفتيش
يقول مضيف التخزين "إثبات WOPI غير صالح" أثناء تلقي CheckFileInfo أو طلب WOPI آخرمفتاح إثبات Collabora، أو بيانات اكتشاف المضيف، أو إعادة بناء عنوان URL، أو الطابع الزمني
تقول منصة Collabora: "مضيف WOPI غير مصرح به" أو "لا توجد مضيفات WOPI مقبولة".قائمة السماح لمضيف WOPI / تكوين النطاق، وليس مفتاح الإثبات
رمز مميز غير صالح أو منتهي الصلاحية أو تم رفض الوصول بدون إثبات خطأرمز الوصول الصادر من المضيف، أو الأذونات، أو تاريخ انتهاء صلاحية الرمز المميز

تحقق من طلب واحد فاشل في كل من سجلات Collabora و storage-host؛ لا يشير مؤشر التحميل في المتصفح وحده إلى فشل مفتاح الإثبات.

اختر الإصلاح المناسب لعملية النشر

ابدأ بالخيار الأقل إزعاجًا. في حالة التثبيت باستخدام الحزم، تحقق أولًا من ملفات المفاتيح وسجلات الخدمة الموجودة؛ تشير وثائق Collabora الحالية إلى أن تثبيت حزم RPM وDebian يُنشئ زوجًا من مفاتيح إثبات WOPI تلقائيًا. إذا كانت هذه الملفات موجودة ومستقرة، فعادةً لا يكون تدويرها ضروريًا.

يعرض سجل الملفات الطرفية ملفين منفصلين هما proof_key و proof_key.pub.
تستخدم Collabora مفتاح إثبات خاص وتنشر مفتاحها العام المطابق من خلال اكتشاف WOPI.
النشرالإجراء الموصى بهمقايضة
خادم واحد مُدار بواسطة حزمةاحتفظ بزوج المفاتيح المُنشأ؛ أصلح الأذونات أو أعد إنشائها فقط في حالة فقدانها أو عدم تطابقها.تغيير طفيف، ولكن تحقق من إصدار الحزمة والمسارات المُكوّنة.
حاوية Docker واحدةقم بإنشاء زوج مرة واحدة وقم بتثبيته بشكل دائم في الحاويةيتطلب ذلك وحدة تخزين دائمة وصلاحية قراءة صحيحة لـ coolwsd
Kubernetes أو نسخ متعددةقم بتثبيت زوج واحد مشترك من المفاتيح/الأسرار في كل نسخة من Collaboraيجب أن تكون التوقيعات متسقة عبر النسخ المتماثلة؛ ويجب أن يؤدي التدوير أيضًا إلى تحديث عرض اكتشاف المضيف.
تم تغيير عنوان URL للمضيف خلف خادم وكيلتحقق من المخطط العام والمضيف والمسار وسلسلة الاستعلام المستخدمة للتحقق من صحة التوقيعأكثر تعقيدًا من مجرد تدوير المفاتيح، ولكنه يتجنب تغييرات بيانات الاعتماد غير الضرورية

يذكر دليل Collabora 24.04 أن صورة Docker العامة لا تتضمن زوجًا من مفاتيح الإثبات؛ لذا قم بإنشاء واحد وتثبيته بشكل دائم. يدعم مخطط Helm الرسمي مفاتيح الإثبات السرية. تجنب إنشاء زوج منفصل لكل نسخة، وإلا فقد يؤدي ذلك إلى حدوث أعطال متقطعة في موازنة الأحمال.

افحص وأصلح زوج المفاتيح بأمان

  1. ابحث عن مسارات المفاتيح المُهيأة. على مضيف Collabora أو داخل الحاوية، افحص إعدادات coolwsd.xmlمسار مفتاح الإثبات وتأكد من توفر كل من المفتاح الخاص والمفتاح العام. توجد المواقع الشائعة ضمن /etc/coolwsd/، ولكن قد تختلف تخطيطات الحزم والحاويات. لا تقم أبدًا بلصق المفتاح الخاص في السجلات أو التذاكر أو المحادثات.
  2. تأكد من تطابق المفاتيح. بالنسبة للمسارات الافتراضية الشائعة، قارن بصمات المفاتيح دون عرض المفتاح الخاص: sudo openssl pkey -in /etc/coolwsd/proof_key -pubout -outform DER | sha256sumو openssl pkey -pubin -in /etc/coolwsd/proof_key.pub -outform DER | sha256sum. يجب أن تتطابق قيم التجزئة الناتجة. إذا اختلفت مساراتك، فاستبدلها بالمسارات المُكوّنة فعليًا. إذا تعذّر قراءة المفتاح الخاص، فصحّح ملكيته وأذوناته وفقًا لنموذج أمان الخدمة؛ ولا تجعله قابلاً للقراءة من قِبل الجميع.
  3. أعد إنشاء المفتاح الخاص عند الضرورة فقط. إذا كان المفتاح الخاص مفقودًا أو لم يتطابق الزوج، فاستخدم sudo coolconfig generate-proof-keyالأداة المساعدة المثبتة. بالنسبة لـ Docker، أنشئ الزوج في موقع دائم مناسب، ثم قم بتثبيت كلا الملفين في الموقع الذي يتوقعه Collabora، وتأكد من أن عملية coolwsd قادرة على قراءة المفتاح الخاص. على منصة مُدارة، استخدم آلية Secret المدعومة بدلاً من تعديل وحدة pod قيد التشغيل يدويًا.
  4. اجعل جميع النسخ متطابقة. بالنسبة للنسخ المتماثلة، انشر نفس زوج المفاتيح على كل نسخة، ثم أعد تشغيل Collabora أو قم بتفعيله لكي يتمكن من قراءة الملفات. بعد ذلك، قم بتحديث أو إعادة جلب اكتشاف WOPI على مضيف التخزين باستخدام الآلية المدعومة من قِبل ذلك المضيف. يؤدي تدوير المفاتيح إلى تغيير المفتاح العام؛ ويمكن لذاكرة التخزين المؤقت أو نسخة متماثلة أخرى لا تزال تستخدم المفتاح السابق أن تُبقي الملفات قيد التشغيل في حالة الأعطال.
تُظهر لوحة وحدات تخزين Kubernetes نفس مفتاح WOPI السري المُثبّت في اثنين من وحدات Collabora قيد التشغيل.
ينبغي أن تشترك النسخ المتماثلة في زوج واحد من مفاتيح الإثبات الدائمة بحيث تقوم كل نسخة بتوقيع الطلبات بشكل متسق.

عندما يتطابق المفتاح ولكن لا يزال التحقق من صحة الدليل يفشل

تحقق من مزامنة الوقت على كلا النظامين. تتضمن طلبات إثبات WOPI طابعًا زمنيًا؛ ويمكن للمضيف رفض طابع زمني قديم أو خارج النطاق الزمني المحدد. تأكد من سلامة بروتوكول NTP أو خدمة الوقت الخاصة بالمنصة، وأن الخوادم تُبلغ عن أوقات UTC صحيحة. لا تُخفف من دقة التحقق من الطابع الزمني لتجاوز مشكلة في الساعة.

بعد ذلك، افحص عنوان URL العام الذي يستخدمه المضيف لإعادة بناء الطلب المُوقّع. يرتبط الإثبات بعنوان URL للطلب، بما في ذلك معلمات الاستعلام ذات الصلة، وتتطلب مواصفات WOPI أن يتطابق تمثيل عنوان URL المستخدم للتحقق مع النموذج المُوقّع. قد يؤدي استخدام خادم وكيل عكسي يُنهي اتصال HTTPS إلى جعل التطبيق يرى عنوان URL داخليًا لبروتوكول HTTP حتى لو وقّعت Collabora عنوان URL العام لبروتوكول HTTPS. اضبط رؤوس الوكيل الموثوق وإعدادات عنوان URL الخارجي للتطبيق وفقًا للإرشادات الرسمية لمضيف WOPI؛ ولا تُعدّل منطق الإثبات أو تُزيل معلمات الاستعلام.

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

تحقق من الإصلاح

  1. قم بجلب نقطة نهاية اكتشاف Collabora من شبكة مضيف التخزين وتأكد من أنها تُرجع بيانات تعريف مفتاح الإثبات الحالية.
  2. افتح مستند اختبار وتأكد من أن مضيف التخزين يقبل طلب CheckFileInfo وطلبات المستندات اللاحقة دون ظهور خطأ في إثبات الصلاحية.
  3. كرر ذلك من خلال كل مسار وكيل أو نسخة متماثلة، ثم تأكد من أن زوج المفاتيح يظل مثبتًا بعد إعادة تشغيل الحاوية أو استبدال وحدة التشغيل.
يعرض المتصفح مستندًا مفتوحًا في Collabora مع نجاح CheckFileInfo وطلبات المحتوى.
قم بتأكيد الإصلاح عن طريق فتح مستند والتحقق من أن المضيف يقبل طلبات WOPI الخاصة به.

إن فتح المستند بنجاح يتحقق من هذا المسار فقط؛ كرر الفحص لكل مضيف WOPI ومسار الوكيل الذي تقوم بتشغيله.

المراجع الرسمية

اترك تعليقاً

إصلاح أخطاء إثبات WOPI عن طريق فحص المفاتيح والاكتشاف وعناوين URL

إصلاح أخطاء إثبات WOPI عن طريق فحص المفاتيح والاكتشاف وعناوين URL

تتبع حالات فشل إثبات Collabora WOPI إلى مفاتيح غير متطابقة، أو بيانات اكتشاف قديمة، أو انحراف الساعة، أو تغييرات عنوان URL للوكيل - دون إضعاف التحقق.

إصلاح قائمة أحجام الخطوط المنسدلة المعروضة بشكل خاطئ في Collabora Online

إصلاح قائمة أحجام الخطوط المنسدلة المعروضة بشكل خاطئ في Collabora Online

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

قم بتوصيل Nextcloud بحاوية Collabora CODE ذاتية الاستضافة

قم بتوصيل Nextcloud بحاوية Collabora CODE ذاتية الاستضافة

قم بنشر Collabora CODE باستخدام Docker، وقم بتوصيله بشكل آمن بـ Nextcloud Office، وتحقق من تحرير المستندات باستخدام فحوصات WOPI العملية وفحوصات البروكسي.

تتبع حالات فشل الاتصال بـ Collabora باستخدام سجلات coolwsd

تتبع حالات فشل الاتصال بـ Collabora باستخدام سجلات coolwsd

قم برفع coolwsd مؤقتًا إلى وضع التصحيح، والتقط عملية فتح فاشلة واحدة، واستخدم تسلسل السجل لفصل مشكلات WebSocket وWOPI والوكيل والحاوية.

قم بتعيين كلمة مرور آمنة للوحة تحكم إدارة Collabora

قم بتعيين كلمة مرور آمنة للوحة تحكم إدارة Collabora

قم بتكوين تسجيل دخول مسؤول Collabora Online لـ Docker أو Linux، وأعد تشغيل الخدمة الصحيحة، وتحقق من كلمة المرور الجديدة دون الكشف عنها.

تشخيص ارتفاع استهلاك وحدة المعالجة المركزية باستخدام أداة coolwsd أو loolwsd من Collabora

تشخيص ارتفاع استهلاك وحدة المعالجة المركزية باستخدام أداة coolwsd أو loolwsd من Collabora

تأكد من معرفة ما إذا كان حمل وحدة المعالجة المركزية ناتجًا عن المستندات النشطة أو عمليات العامل الخاملة أو سعة الخادم قبل تغيير إعدادات Collabora أو إعادة تشغيل الخدمة.

ارفع الحد الأقصى لذاكرة حاوية التعليمات البرمجية دون تخمين

ارفع الحد الأقصى لذاكرة حاوية التعليمات البرمجية دون تخمين

تحقق مما إذا كان Docker يفرض قيودًا على Collabora CODE، وقم بزيادة حد ذاكرة Compose بأمان، وتأكد من أن الحاوية قيد التشغيل قد تلقت الحد الجديد.

تخصيص أشرطة أدوات Collabora CODE بدون تعديل الكود المصدري

تخصيص أشرطة أدوات Collabora CODE بدون تعديل الكود المصدري

قم بتبسيط Collabora CODE باستخدام الوضع المضغوط أو وضع علامات التبويب وعناصر تحكم WOPI PostMessage لإخفاء الأزرار والأوامر وعلامات التبويب المحددة بأمان.

تشغيل كود Collabora خلف Nginx مع إنهاء TLS

تشغيل كود Collabora خلف Nginx مع إنهاء TLS

قم بتعيين Nginx مسؤولاً عن HTTPS لحاوية Collabora CODE، وقم بتحرير WebSockets بشكل صحيح، وتحقق من نقطة النهاية العامة دون كشف المنفذ 9980.

أبقِ النص مرئيًا عند فتح لوحة مفاتيح Collabora Mobile

أبقِ النص مرئيًا عند فتح لوحة مفاتيح Collabora Mobile

استكشاف أخطاء لوحة مفاتيح متصفح الهاتف المحمول التي تغطي النص في Collabora Online وإصلاحها، مع حلول سريعة وفحوصات منفصلة للمتصفحات وWebViews المضمنة وصفحات الاستضافة.