كيف أخرجت شهادة SSL منتهية متجرك من Google خلال 48 ساعة
شهادة تنتهي يوم الأربعاء الساعة 03:14. صباح الجمعة انهارت حركة الزيارات العضوية. لم يكن حظًا سيئًا، بل إهمالًا قابلًا للقياس.
متجر معدات مكتبية في بورتو خسر 78% من حركة الزيارات العضوية بين الأربعاء والجمعة. لم يلمس أحد الموقع منذ أسابيع. المشكلة كانت تتسع لسطر واحد في السجل: شهادة SSL انتهت صلاحيتها الساعة 03:14 من يوم الأربعاء.
حين عاد Googlebot لزيارة الموقع في ذلك الصباح، وجد ERR_CERT_DATE_INVALID. لم يفهرس شيئًا. والأسوأ، وسم النطاق كغير آمن للمستخدمين الذين ينقرون على النتائج المخزنة مؤقتًا. خلال 48 ساعة، كان Chrome يعرض الشاشة الحمراء التحذيرية قبل الصفحة الرئيسية.
لماذا يتفاعل Google بهذه القسوة
منذ 2014، يُعتبر HTTPS إشارة ترتيب. ومنذ 2018، يضع Chrome علامة "غير آمن" على HTTP. الشهادة المنتهية أسوأ من HTTP، إنها HTTPS مكسور. يفسّر المتصفح ذلك كمحاولة انتحال هوية، حتى لو كان مجرد فشل acme.sh في التجديد.
يتعامل Googlebot مع فشل مصافحة TLS كخطأ زحف. يعيد المحاولة، يفشل، يعيد، يفشل. بعد ساعات قليلة يبدأ إلغاء الفهرسة. الصفحات لا تختفي من الفهرس فورًا، لكنها تفقد ترتيبها لأن إشارة الثقة هبطت إلى الصفر.
ما حدث على أرض الواقع
- 03:14 الأربعاء — انتهاء صلاحية شهادة Let's Encrypt. كان cron التجديد قد فشل ثلاث مرات في الـ30 يومًا السابقة. لم يقرأ أحد البريد.
- 08:00 الأربعاء — أول المستخدمين على الهاتف يرون التحذير الأحمر. معدل الارتداد ينفجر.
- 11:30 الأربعاء — يمر Googlebot، تفشل المصافحة، يسجل soft 404 بالجملة.
- صباح الخميس — Search Console يرسل تنبيه "تغطية". لا أحد يفتح Search Console.
- الجمعة 09:00 — المبيعات متوقفة. العميل يتصل بالمبرمج. المبرمج يكتشف المشكلة في أربع دقائق.
التجديد نفسه استغرق 90 ثانية. استعادة الترتيب استغرقت 23 يومًا. خلال ذلك الوقت، انتزع المنافس المراكز الأولى في الكلمات المفتاحية الأساسية ولم يتركها كاملةً بعد ذلك.
لماذا فشل cron
كان الخادم قد غيّر عنوان IP في يناير. DNS يشير إلى المكان الصحيح، لكن تحدي HTTP-01 الخاص بـLet's Encrypt كان يصطدم بجدار حماية جديد يحجب الطلبات القادمة من نطاق ISRG. كل محاولة تجديد كانت تسجل خطأ في سجل لا يقرأه أحد.
هذا هو النمط المتكرر. الشهادة لا تنتهي لأن التجديد صعب. تنتهي لأن التجديد التلقائي يفشل بصمت ولا أحد لديه إنذارات موجهة نحو السجلات الصحيحة.
ما عليك فعله اليوم
- مراقبة خارجية للشهادة، لا لـcron. استخدم خدمة مثل UptimeRobot أو StatusCake مضبوطة للتنبيه قبل 14 يومًا من الانتهاء.
- تنبيهات على Telegram أو SMS، لا بريد إلكتروني. رسائل تحذير Let's Encrypt تذهب إلى علبة لا يفتحها أحد.
- افحص Search Console كل أسبوع. إذا كان Googlebot يفشل، فالأمر مكتوب هناك.
- اختبر التجديد يدويًا مرة كل ثلاثة أشهر. إذا كان cron يعمل في الإنتاج وليس في staging، فلديك انحراف في الإعدادات.
- وثّق إجراء التجديد الطارئ. حين يسقط الموقع يوم الجمعة الساعة 18:00، لا تريد أن تتعلم acme.sh في تلك اللحظة.
الشهادة المنتهية هي أرخص طريقة لخسارة ستة أشهر من SEO. منعها يكلف صفر يورو، واستعادتها تكلف ثلاثة رواتب.— تدقيق داخلي بعد الحادثة، عميل بورتو
التكلفة الحقيقية
المتجر فوتر 31 ألف يورو أقل في ذلك الشهر مقارنة بمتوسط الربع. المبرمج الذي ركّب الخادم تقاضى 180 يورو لحل المشكلة. تكلفة الوقاية كانت صفرًا — وظيفة cron إضافية لفحص الصحة وwebhook إلى Telegram.
إذا كنت تبيع عبر الإنترنت في البرتغال ولا تملك حتى الآن مراقبة مستقلة عن خادمك تراقب الشهادة، فأنت على بُعد تجديد فاشل واحد من خسارة الربع. ليس تهويلًا. إنه حساب.
القاعدة بسيطة. لا تثق بـcron الذي يجدد. ثق بالمراقب الخارجي الذي يتحقق من أن cron جدد فعلًا.