ما التحميل المسبق لـ HSTS وما الذي يحتاجه النطاق ليُقبل فيه؟
HSTS (RFC 6797) ترويسة رد تجعل المتصفح يستخدم HTTPS مع المضيف طوال max-age ثانية بعد أول زيارة آمنة؛ أما القائمة المسبقة، المضمّنة في Chromium وفي القوائم التي تشتقها المتصفحات الأخرى منها، فتمدّ هذه الحماية إلى أول زيارة على الإطلاق. ولكي يُقبل النطاق يجب أن يقدّم شهادة صالحة، ويحوّل HTTP إلى HTTPS على المضيف نفسه، ويقدّم كل نطاقاته الفرعية عبر HTTPS، ويرسل الترويسة بقيمة max-age لا تقل عن 31536000 مع includeSubDomains وpreload.
ملاحظة أمنية: لا يمكن التراجع عن التحميل المسبق بسرعة: فالإزالة لا تصل إلى الزوار إلا مع تحديث متصفحاتهم. ويجب أن يعمل كل نطاق فرعي عبر HTTPS قبل التقديم، بما في ذلك الأدوات الداخلية والنطاقات التي تُنشأ لاحقاً.
كيفية استخدام فاحص التحميل المسبق لـ HSTS
- أدخل النطاق (example.com)؛ ويُختصر الرابط الكامل أو الاسم المبدوء بـ www. إلى النطاق.
- اضغط «افحص HSTS» واقرأ حالة الإدراج، ثم الشروط الستة.
- أصلح كل ما وُسم «غير مستوفى» بدءاً بـ HTTPS والتحويل، واقرأ عوائق hstspreload.org إن ظهرت.
- لفحص ترويسة قبل نشرها، الصق قيمتها في الحقل الثاني بدلاً من ذلك؛ ولن يُرسل شيء.
مزايا فاحص التحميل المسبق لـ HSTS
- يفحص النطاق وفق شروط التقديم المنشورة في hstspreload.org: HTTPS بشهادة صالحة، وتحويل من HTTP إلى HTTPS على المضيف نفسه، وترويسة Strict-Transport-Security بقيمة max-age لا تقل عن سنة مع includeSubDomains وpreload
- يسأل hstspreload.org عن حالة النطاق الحالية في القائمة — مُدرج، أو بانتظار الإدراج، أو مُزال، أو مرفوض، أو غير مُدرج — وعن العوائق التي يبلّغ عنها زاحفه
- يعرض ما رآه خادم متقن فعلاً: حالة ردَّي https:// وhttp://، ووجهة التحويل، ونص الترويسة كما هو
- يميّز «غير مستوفى» من «لم يُتحقَّق منه»: الطلب الذي انتهت مهلته أو رُفض لا يقول شيئاً عن الموقع، فلا يُحسب إخفاقاً له
- يفحص قيمة Strict-Transport-Security الملصوقة داخل متصفحك: التوجيهات، وmax-age بالثواني والأيام، والتوجيهات المكررة أو المشوّهة أو غير المعروفة
- يرتّب ما يجب إصلاحه، وينبّه قبل التقديم إلى أن التراجع عن الإدراج المسبق بطيء
المدخلات والمخرجات
المدخلات
- النطاق — نطاق قابل للتسجيل مثل example.com، ويُختصر الرابط أو البادئة www. إليه. وتُرفض الأسماء ذات المقطع الواحد وعناوين IP والأسماء الخاصة.
- الترويسة الملصوقة — قيمة Strict-Transport-Security باسم الترويسة أو دونه؛ تُفحص في متصفحك ويُتجاهل حقل النطاق.
المخرجات
- الملخّص — حالة الإدراج، وعدد الشروط المستوفاة من ستة وعدد ما تعذّر التحقق منه، وmax-age بالأيام، وهل يبدو النطاق جاهزاً للتقديم.
- شروط الإدراج — كل شرط مع «مستوفى» أو «غير مستوفى» أو «لم يُتحقَّق منه» والقيمة المرصودة.
- قائمة الإدراج وعوائق hstspreload.org — كلمة الحالة كما تصوغها القائمة، والنطاق الذي أُدرج عبره، ووقت السؤال، والعوائق والتحذيرات بلغة تلك الخدمة.
- ما رآه خادم متقن، وتوجيهات الترويسة، ومشكلات الترويسة — الردّان، ونص الترويسة، وأي خلل في صياغتها.
مثال على فاحص التحميل المسبق لـ HSTS
نطاق جاهز إلا من التوجيه preload
الإدخال:
example.orgالنتيجة:
حالة الإدراج: غير مُدرج · الشروط المستوفاة 5/6 · max-age (بالأيام) 365 · جاهز للتقديم: لا
HTTPS بشهادة صالحة — مستوفى — HTTP 200
تحويل HTTP إلى HTTPS على المضيف نفسه — مستوفى — HTTP 301 → https://example.org/
ترويسة Strict-Transport-Security — مستوفى — max-age=31536000; includeSubDomains
max-age لسنة على الأقل — مستوفى — 31536000 s (365 d)
التوجيه includeSubDomains — مستوفى — موجود
التوجيه preload — غير مستوفى — غير موجود
عوائق hstspreload.org: عائق · header.preloadable.preload.missing · No preload directiveكيف تقرأ نتائج فاحص التحميل المسبق لـ HSTS
«مُدرج مسبقاً» يعني أن المتصفحات تحمل النطاق في قائمتها المدمجة وتستخدم HTTPS معه ومع كل نطاقاته الفرعية حتى في أول زيارة. و«بانتظار الإدراج» يعني أنه قُبل وينتظر إصدارات المتصفحات.
«جاهز للتقديم: نعم» يتطلب استيفاء الشروط الستة وغياب أي عائق من hstspreload.org، الذي يفحص زاحفه أيضاً النطاقات الفرعية مثل www وسلاسل التحويل — وجوابه هو الفيصل. وإن تعذّر سؤال hstspreload.org أو تعذّر التحقق من أحد الشروط كانت الإجابة «غير معروف» لا «نعم» ولا «لا»؛ أما «قُدّم بالفعل (بانتظار الإدراج)» فيعني أن النطاق ينتظر إدراجه.
«لم يُتحقَّق منه» ليس إخفاقاً للموقع: لم يتمكن خادم متقن من إتمام ذلك الطلب (انتهاء مهلة أو عنوان لا يُسمح له بالاتصال به). وإن لم يصل أي رد عبر HTTPS أصلاً فشروط الترويسة الأربعة «لم يُتحقَّق منها» كذلك، لأن الترويسة لم تُرَ. أعد الفحص أو تحقق من شبكتك.
قيمة max-age الأقل من 31536000 ثانية (365 يوماً) تحمي الزوار العائدين طوال تلك المدة، لكن القائمة لا تقبلها؛ وتطلب max-age=0 من المتصفحات نسيان السياسة.
متى تستخدم فاحص التحميل المسبق لـ HSTS
- تجهيز نطاق لتقديمه إلى قائمة HSTS المسبقة ومعرفة الشرط الناقص بالضبط.
- التحقق من أن نشر HTTPS الجديد يرسل Strict-Transport-Security في الصفحة الرئيسية للنطاق ويحوّل HTTP تحويلاً صحيحاً.
- معرفة ما إذا كان النطاق مُدرجاً أو بانتظار الإدراج أو مُزالاً قبل تغيير إعدادات HTTPS.
- مراجعة قيمة الترويسة في طلب دمج قبل وصولها إلى بيئة الإنتاج.
استكشاف الأخطاء وإصلاحها
- التحويل «غير مستوفى» مع أن الموقع ينتهي إلى HTTPS: يجب أن تذهب القفزة الأولى من http:// إلى https:// على المضيف نفسه. التحويل مباشرةً إلى https://www. (مضيف آخر) غير مقبول؛ حوّل أولاً إلى https://example.com/.
- الترويسة «غير مستوفاة» مع أن خادمك يرسلها: يجب أن تكون في رد HTTPS للصفحة الرئيسية للنطاق نفسها، لا في www أو صفحات أعمق فقط، والمتصفحات تتجاهلها في ردود HTTP العادية.
- رفضٌ يقول إن النطاق «has no A or AAAA record» أو «resolves to an address the Mutqan server may not connect to»: الاسم لا يُحلّ علناً أو يشير إلى عنوان خاص. لا تُفحص إلا النطاقات العامة، ولا يُدرج غيرها.
- حالة الإدراج «غير معروف — تعذّر الوصول إلى hstspreload.org»: لم تُجب خدمة القائمة، لكن صفوف الشروط ما زالت من طلبات خادم متقن نفسه. أعد المحاولة لاحقاً.
الأسئلة الشائعة حول فاحص التحميل المسبق لـ HSTS
ما فائدة إدراج النطاق في قائمة HSTS المسبقة؟
يضع النطاق في قائمة مدمجة في المتصفحات، فتستخدم HTTPS معه ومع كل نطاقاته الفرعية حتى في أول زيارة، قبل أن تتاح لها رؤية أي ترويسة. ومن دون الإدراج قد يذهب أول طلب لزائر جديد عبر HTTP العادي.
لماذا يُشترط وجود التوجيه preload في الترويسة؟
لأنه موافقة مالك الموقع: فالإدراج يشمل كل النطاقات الفرعية ويصعب التراجع عنه، لذا لا تقبل القائمة إلا النطاقات التي تطلبه بنفسها عبر preload، مع includeSubDomains وmax-age لا تقل عن سنة.
هل أستطيع إخراج نطاقي من القائمة لاحقاً؟
نعم عبر hstspreload.org، لكن الإزالة لا تصل إلى الزوار إلا مع تحديث متصفحاتهم، وهذا يستغرق أشهراً، وقد يحتفظ بعضهم بالقائمة القديمة مدة أطول. وحتى ذلك الحين يجب أن تبقى كل النطاقات الفرعية عاملة عبر HTTPS.
لماذا تظهر عبارة «لم يُتحقَّق منه» بدلاً من «غير مستوفى»؟
لأن خادم متقن لم يُتمّ ذلك الطلب: انتهت مهلته، أو كان العنوان مما لا يُسمح له بالاتصال به. وهذا لا يقول شيئاً عن موقعك فلا يُحسب إخفاقاً. وإن لم يصل أي رد عبر HTTPS فإن شروط الترويسة الأربعة تُعرض «لم يُتحقَّق منه» أيضاً، لأن الترويسة لم تُرَ أصلاً. أعد الفحص أو اختبر من شبكتك.
هل تفحص الأداة نطاقاتي الفرعية؟
لا. تطلب الصفحة الرئيسية للنطاق فقط عبر HTTPS وHTTP. أما فحص hstspreload.org نفسه فيتحقق من النطاقات الفرعية مثل www ومن سلاسل التحويل، وتُعرض عوائقه كما يصوغها.
ملاحظات تقنية
يعرّف RFC 6797 آلية HSTS: حين يتلقى المتصفح ترويسة Strict-Transport-Security صالحة عبر HTTPS يحوّل كل طلب http:// إلى ذلك المضيف إلى https:// طوال max-age ثانية، ولا يسمح للزائر بتجاوز أخطاء الشهادة؛ ويمدّ includeSubDomains ذلك إلى كل نطاق فرعي.
تُطبَّق صياغة الترويسة في RFC 6797 §6.1: تُفصل التوجيهات بفواصل منقوطة، ولا تميّز الأسماء حالة الأحرف، وmax-age إلزامي ويجب أن يكون عدداً صحيحاً من الثواني (ويُسمح بعلامات الاقتباس)، ولا يتكرر توجيه، وتُتجاهل التوجيهات غير المعروفة. أما preload فليس من RFC، بل هو الرمز الذي تطلبه القائمة.
القائمة المسبقة مُضمَّنة في Chromium، ويحتفظ Firefox وSafari وEdge بقوائم مبنية عليها. وشروط التقديم فيها (hstspreload.org): شهادة صالحة، وتحويل من HTTP إلى HTTPS على المضيف نفسه قبل أي تحويل آخر إن كان المنفذ 80 يجيب، وتقديم كل النطاقات الفرعية عبر HTTPS، ووجود الترويسة في رد HTTPS للنطاق بقيمة max-age لا تقل عن 31536000 مع includeSubDomains وpreload.
يرسل خادم متقن طلبين إلى الصفحة الرئيسية للنطاق، https:// وhttp://، دون اتباع التحويلات أو قراءة المحتوى، ويستدعي واجهة hstspreload.org مرتين (status وpreloadable) وتُحفظ إجابتها 24 ساعة. ويُعدّ الاتصال المرفوض على المنفذ 80 «لا خدمة»، وهو ما تقبله القائمة، أما انتهاء المهلة فيُعدّ «لم يُتحقَّق منه».
الحدود ومنهجية القياس
لا تُطلب إلا الصفحة الرئيسية للنطاق (https://domain/ وhttp://domain/) من خادم متقن على شبكة Cloudflare. النطاقات الفرعية لا تُختبر هنا؛ بل يختبرها زاحف hstspreload.org وتُعرض عوائقه كما يبلّغ عنها.
تُحفظ إجابات hstspreload.org حتى 24 ساعة، فقد لا يظهر تغيير أجريته قبل دقائق في حالة الإدراج إلا في اليوم التالي؛ أما صفوف الشروط فتأتي دائماً من طلبات حيّة.
تأخذ المتصفحات القائمة مع إصداراتها: النطاق المقبول اليوم يصل إلى المستخدمين بعد أسابيع أو أشهر، والإزالة تستغرق المدة نفسها.
الأمان والخصوصية
يُرسل النطاق إلى خادم متقن فيرسل إليه طلبين ويسأل عنه hstspreload.org، ولا يُخزَّن شيء. أما الترويسة الملصوقة فتُفحص في متصفحك ولا تُرسل أبداً.
المراجع
- RFC 6797: HTTP Strict Transport Security (HSTS)ترويسة Strict-Transport-Security التي تُلزم المتصفح باستخدام HTTPS فقط مع المضيف.
- HSTS Preload List Submissionموقع التقديم الرسمي لقائمة HSTS المسبقة: الشروط التي يجب أن يستوفيها النطاق، والاستعلام عن الحالة، وإجراء الإزالة.
- Strict-Transport-Security header — MDNتوجيهات الترويسة، وكيف تطبّقها المتصفحات، وعلاقة التحميل المسبق بها.