عندما يُبلغ Nextcloud عن رسالة "لم يتم تكوين رأس HTTP Strict-Transport-Security"، فإن الحل يكمن في طبقة تقديم استجابة HTTPS: Apache أو Nginx أو الخادم الوكيل العكسي العام الذي يُنهي TLS. يُشير دليل إدارة Nextcloud الحالي إلى أن غياب الرأس أو max-ageانخفاض مدة 15552000الاستجابة عن ثانية واحدة يُعد تحذيرًا أمنيًا. بمجرد وجود الرأس في نقطة نهاية HTTPS العامة، يُمكن للمتصفحات تذكر أن المضيف يجب أن يستخدم HTTPS للفترة الزمنية المُحددة.
التغيير الأساسي بسيط، لكن نطاقه مهم. طبّق بروتوكول HSTS فقط على نقطة نهاية HTTPS عاملة بشهادة صالحة. ابدأ بالمضيف فقط؛ أضف includeSubDomainsأو preloadفقط عندما يكون كل اسم مضيف متأثر جاهزًا لبروتوكول HTTPS. يعكس هذا الدليل وثائق إدارة Nextcloud المتوفرة في أكتوبر 2026، بما في ذلك إرشادات التحذيرات الأمنية وإرشادات تحصين الخادم .
ماذا يعني التحذير؟
بروتوكول أمان النقل الصارم (HSTS) هو رأس استجابة يُخبر المتصفح باستخدام HTTPS للطلبات اللاحقة إلى اسم مضيف. ويساعد هذا البروتوكول على منع المتصفح من العودة إلى استخدام HTTP العادي بعد تلقيه السياسة عبر اتصال HTTPS صالح. يتحقق Nextcloud من الاستجابة العامة ويُصدر تحذيرًا عند عدم وجود سياسة بالحد الأدنى الموصى به لفترة الصلاحية.
لا يُعدّ بروتوكول HSTS بديلاً عن تفعيل بروتوكول TLS أو إعادة توجيه HTTP إلى HTTPS. لا يقبل المتصفح إلا سياسة HSTS المُرسلة عبر HTTPS. في الزيارة الأولى، وقبل أن يتعرف المتصفح على السياسة، قد يظل الطلب الأولي عرضةً للاختراق ما لم يكن اسم المضيف مُدرجًا في قائمة التحميل المُسبق للمتصفح. تظل إعادة التوجيه العادية من HTTP إلى HTTPS مفيدة، لكنها لا تُغني عن استخدام ترويسة HTTP.
حدد الخادم الذي يجب أن يرسل الترويسة
تتبّع الطلب العام قبل تغيير الإعدادات. إذا كان المستخدمون يتصلون مباشرةً بـ Apache أو Nginx عبر HTTPS، فقم بتكوين المضيف الظاهري لبروتوكول TLS الخاص بخادم الويب. إذا كان موازن الأحمال أو بوابة الدخول أو شبكة توصيل المحتوى (CDN) أو الخادم الوكيل العكسي يُنهي اتصال TLS العام، فقم بتكوين الطبقة التي تُرسل الاستجابة إلى المتصفح. قد لا يؤثر إضافة الترويسة إلى اتصال HTTP داخلي فقط على الاستجابة العامة.
يدعم Nextcloud استخدام الخوادم الوكيلة العكسية كنمط نشر مدعوم، ويُلزم المسؤولين بتحديد الخوادم الوكيلة الموثوقة عند الاقتضاء. وتُعدّ مسؤولية الخادم الوكيل عن بروتوكول HSTS منفصلة عن معالجة عناوين URL وعناوين IP الخاصة بالعميل في Nextcloud. وعلى وجه الخصوص، overwriteprotocolيُساعد هذا الإعداد Nextcloud على التعرّف على المخطط الخارجي في بعض تخطيطات الخوادم الوكيلة؛ إذ لا يُضيف هذا الإعداد رأس استجابة HSTS تلقائيًا. يُرجى مراجعة دليل تكوين الخادم الوكيل العكسي الرسمي لـ Nextcloud إذا كان التطبيق يُنشئ روابط HTTP أو يُبلغ عن تحذيرات أخرى متعلقة بالخادم الوكيل.
قبل تغيير السياسة
- تأكد من
https://cloud.example.comتحميل الملفات بدون خطأ في الشهادة واستخدم سلسلة الشهادات المقصودة. - تحقق مما إذا كانت طلبات HTTP تعيد التوجيه إلى نفس اسم المضيف عبر HTTPS.
- حدد الخدمات والنطاقات الفرعية الأخرى الموجودة ضمن نفس النطاق الرئيسي قبل النظر في الأمر
includeSubDomains. - احتفظ بمسار إداري أو وحدة تحكم الخادم متاحة. سيرفض المتصفح الذي قام بتخزين HSTS مؤقتًا السماح للمستخدم بتجاوز أخطاء الشهادة طوال فترة السياسة.
استبدل cloud.example.comفي الأمثلة اسم مضيف Nextcloud الحقيقي الخاص بك. لا تقم بنسخ أسماء المضيفات النموذجية إلى إعدادات الإنتاج.
قم بتعيين HSTS في Apache
في المضيف الافتراضي لبروتوكول TLS الخاص بـ Apache الذي يستضيف Nextcloud، فعّل وحدة الرؤوس وأضف السياسة. يُشير دليل تحصين Nextcloud إلى قيمة ستة أشهر ويستخدمها includeSubDomains؛ أما الإصدار التالي الخاص بالمضيف فقط فهو نقطة بداية حذرة:
<VirtualHost *:443>
ServerName cloud.example.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000"
</IfModule>
# Existing Nextcloud and TLS directives
</VirtualHost>
تأكد mod_headersمن تفعيل خيار HTTPS في إعدادات Apache الخاصة بتوزيعتك. أضف التوجيه إلى المضيف الظاهري HTTPS، وليس إلى المضيف الظاهري للمنفذ 80. تحقق من صحة الإعدادات باستخدام الأمر المناسب للتوزيعة المثبتة، ثم أعد تحميل Apache باستخدام مدير الخدمات الخاص به. على سبيل المثال، تدعم العديد من التوزيعات المبنية على systemd خيار HTTPS sudo apachectl configtestمتبوعًا بـ sudo systemctl reload apache2; في بعض التوزيعات، يُسمى اسم الخدمة httpd. استخدم الأمر الذي يطابق اسم الحزمة والخدمة لديك.
قم بضبط HSTS في Nginx
في قسم Nginx serverالذي يستمع إلى HTTPS ويقدم اسم مضيف Nextcloud العام، أضف ما يلي:
server {
listen 443 ssl;
server_name cloud.example.com;
add_header Strict-Transport-Security "max-age=15552000" always;
# Existing certificate and Nextcloud configuration
}
alwaysتُضيف هذه المعلمة رأس HSTS إلى Nginx بغض النظر عن حالة الاستجابة. يُوثّق Nginx قاعدة توريث قد تُفاجئ المُشغّلين: add_headerتُغيّر التوجيهات على مستوى تكوين أدنى سلوك التوريث الطبيعي. إذا locationعرّفت كتلة متداخلة توجيهاتها الخاصة ، فقد لا يتم توريث رأس HSTS على مستوى الخادم هناك. تحقّق من التكوين النشط واختبر عناوين URL نموذجية، بما في ذلك صفحة تسجيل الدخول ومورد ثابت. راجع توثيق وحدة رؤوس Nginxadd_header الرسمي .
قبل تطبيق التغييرات، قم بتشغيل الأمر sudo nginx -t. إذا نجح التحقق، فأعد تحميل Nginx باستخدام أمر الخدمة الخاص بنظامك، غالبًا sudo systemctl reload nginx. يجب تصحيح أي خطأ في اختبار بناء الجملة قبل إعادة التحميل.
قم بتكوين خادم وكيل عكسي أو مُنهي TLS
إذا انتهى اتصال HTTPS العام عند خادم وكيل عكسي، فأضف ترويسة HSTS إلى استجابة HTTPS الخاصة بهذا الخادم الوكيل. على سبيل المثال، قد يرسل الخادم الوكيل هذه الترويسة حتى عند استخدام بروتوكول HTTP للاتصال بخادم Nextcloud الخلفي. لا ترسل ترويسة HSTS فقط في استجابة الخادم الخلفي غير المشفرة وتفترض أن المتصفح سيراها.
تحقق مما إذا كان كل من الخادم الوكيل والخادم الخلفي يُضيفان نفس الترويسة. قد يكون تشخيص حقول HSTS المكررة مُربكًا، وقد يقوم الخادم الوكيل باستبدال ترويسة الخادم الخلفي أو إخفائها. اختر طبقة واحدة من الطبقات العامة لتكون مسؤولة عن السياسة، أو قم بتهيئة الطبقات عمدًا بحيث يتلقى المتصفح قيمة واحدة واضحة. بعد تغيير الخادم الوكيل، تأكد من أنه يُعيد توجيه المضيف والبروتوكول المتوقعين إلى Nextcloud وأن روابط HTTPS لا تزال تعمل.
تحقق من ردود فعل الجمهور
استخدم طلبًا إلى اسم مضيف HTTPS العام، وليس فقط إلى عنوان المضيف المحلي أو عنوان الواجهة الخلفية:
curl -sSI https://cloud.example.com
curl -sSIL http://cloud.example.com
في الرد الأول، ابحث عن عنوان واحد فقط مشابه لما يلي:
Strict-Transport-Security: max-age=15552000
يأتي الأمر الثاني بعد عمليات إعادة التوجيه. تأكد من وصول عنوان URL الخاص بـ HTTP إلى اسم مضيف HTTPS المقصود، ثم افحص استجابة HTTPS بحثًا عن HSTS. تتجاهل المتصفحات HSTS المُستلمة عبر HTTP العادي، لذا لا يلزم ظهور الترويسة في عملية إعادة التوجيه الأولية للمنفذ 80. يمكنك أيضًا استخدام أدوات مطوري المتصفح: افتح لوحة الشبكة، وأعد تحميل صفحة HTTPS، وحدد استجابة المستند، وافحص ترويسات الاستجابة.
تحقق من أكثر من مسار استجابة واحد إذا كان تكوينك يتضمن مواقع متداخلة، أو مستويات بروكسي متعددة، أو معالجة منفصلة للأصول الثابتة. ثم راجع إعدادات إدارة Nextcloud وقم بتحديث نظرة عامة على الأمان. قد يستغرق تحديث التحذير بعض الوقت، أو قد يعكس عنوان URL العام الذي يتحقق منه Nextcloud، لذا قارن هذا العنوان مع العنوان الذي اختبرته.
اختر النطاق والعمر الافتراضي بعناية
مدة max-ageصلاحية 15552000هذه السياسة ستة أشهر، وهو ما يتوافق مع عتبة التحذير الموثقة في Nextcloud. يتم تجديد السياسة تلقائيًا عند استلام المتصفح لرأس HSTS جديد وصالح. يتطلب تقصيرها أو إزالتها لاحقًا إرسالها max-age=0عبر HTTPS إلى كل اسم مضيف متأثر؛ وستحتفظ المتصفحات التي لا تعيد زيارة الموقع أثناء التغيير بسياستها المخزنة مؤقتًا حتى انتهاء صلاحيتها الحالية.
includeSubDomainsيطبق هذا الإجراء على جميع النطاقات الفرعية التابعة لاسم المضيف. استخدمه فقط إذا كانت جميع النطاقات الفرعية الحالية والمخطط لها تدعم بروتوكول HTTPS بشهادات صالحة. قد تصبح خدمة منفصلة، مثل [اسم الخدمة] mail.example.comأو [اسم legacy.example.comالخدمة]، غير متاحة للمتصفحات إذا لم تكن جاهزة.
يُعدّ الرمز preloadالمميز قرارًا منفصلاً وذا تأثير كبير. تشرح إرشادات Nextcloud لتعزيز الأمان كيفية إضافة اسم مضيف إلى قوائم التحميل المسبق للمتصفحات، وتحذر من أن إزالته قد تستغرق شهورًا حتى تصل إلى المتصفحات المثبتة. لا تُضفه كوسيلة سريعة لتجاوز نتائج الفحص. تأكد أولًا من جميع شروط التحميل المسبق المطلوبة وتأثيرها على كل نطاق فرعي؛ واتبع إرشادات خدمة التحميل المسبق لبروتوكول HSTS الرسمية إذا كنت تنوي طلب إضافته.
إذا استمر التحذير
- العنوان غير موجود في curl: ربما تكون قد عدّلت موقع المضيف الظاهري أو الخادم الوكيل أو Nginx بشكل خاطئ. تفحّص هدف DNS العام وإعدادات الخادم النشط.
- يظهر العنوان فقط في بعض الصفحات: تحقق من توجيهات Nginx المتداخلة
add_header، ومعالجة الأخطاء، ومسارات الأصول الثابتة، وقواعد الوكيل. - تتضمن الاستجابة سياسات متعددة: تحديد الطبقات التي تضيف الحقل ودمجها في قيمة واحدة متسقة.
- العنوان موجود ولكن التحذير لا يزال قائماً: تحقق من أن عنوان URL المُكوّن خارجياً لـ Nextcloud يُحل إلى نفس نقطة نهاية HTTPS، وتحقق من معالجة مخطط الوكيل، ثم أعد تحميل نظرة عامة على المسؤول.
- بروتوكول HTTPS أو الشهادة غير جاهزة: يجب إصلاح بروتوكول TLS وتوجيه HTTP إلى HTTPS أولاً. لا يمكن لبروتوكول HSTS إصلاح شهادة تالفة أو تفعيل HTTPS تلقائيًا.
يكتمل الإصلاح عندما تحمل استجابة HTTPS العامة قيمة HSTS المطلوبة باستمرار، ويتمكن Nextcloud من الوصول إلى عنوان URL العام الخاص به عبر HTTPS بشكل صحيح، ويستطيع المتصفح تحميل المثيل دون أخطاء في الشهادة أو إعادة التوجيه. يُحسّن HSTS تطبيق سياسة النقل للمتصفحات المُرجعة؛ ولكنه لا يُغني عن صيانة الشهادات، أو تكوين الوكيل الآمن، أو مسار الاسترداد المُختبَر.