bg-tutorials

كيفية تثبيت شهادة SSL على PrestaShop وتفعيل HTTPS

تفعيل بروتوكول HTTPS في متجر PrestaShop يتم عبر ثلاث خطوات: تثبيت شهادة SSL على الخادم، تفعيل إعدادين في Shop Parameters، وإعادة توجيه حركة HTTP القديمة. الخطوة الوسطى هي ما يوقع معظم الأشخاص في الخطأ، لأن PrestaShop يحتوي على إعدادين لـ SSL بدلاً من واحد، ويبقى الإعداد الثاني مقفلاً حتى يتم حفظ الأول.

الإجابة السريعة: بعد وجود شهادة تعمل على خادمك، افتح Shop Parameters > General، اضغط على الرابط الذي يتحقق مما إذا كان متجرك يدعم HTTPS، اضبط Enable SSL على Yes، ثم اضبط Enable SSL on all pages على Yes، مرر إلى أسفل الصفحة واضغط Save. إذا كان المفتاح الثاني معطلاً (باللون الرمادي)، فهذا يعني أن الأول لم يُحفظ بعد.

SSL (وهو اختصار لـ Secure Sockets Layer، رغم أن جميع الشهادات الصادرة حالياً تستخدم TLS) هو ما يُظهر رمز القفل في شريط عنوان متجرك ويسمح لبوابات الدفع بالعمل. إذا كنت تريد فهم الأساسيات أولاً، اقرأ ما هي شهادة SSL. تغطي هذه الخطوات إصدارَي PrestaShop 8 و PrestaShop 9.

أي طريقة تناسب إعداد PrestaShop الخاص بك

إعدادككيفية الحصول على الشهادةالوقت التقريبي
استضافة مُدارة أو cPanel مع AutoSSLأصدر الشهادة المجانية من لوحة التحكم، ثم فعّل SSL في PrestaShop10 دقائق
خادم VPS خاص، بدون لوحة استضافةاستخدام Certbot للحصول على شهادة Let’s Encrypt20 دقيقة
شهادة مدفوعة (OV أو EV أو wildcard)إنشاء CSR وتثبيته يدوياً30 دقيقة بالإضافة إلى وقت التحقق
Cloudflare أمام المتجرالشهادة على الخادم الأصلي، مع ضبط Cloudflare على Full (strict)15 دقيقة

احتفظ بنسخة احتياطية من المتجر وقاعدة البيانات قبل البدء. إذا كان المتجر فعلياً على الإنترنت، قم بهذا خارج ساعات الازدحام: كل دقيقة يكون فيها إتمام الطلب (checkout) غير متاح تعني طلباً مفقوداً.

أي شهادة SSL يجب أن يستخدمها متجر PrestaShop؟

الشهادة المجانية تشفّر حركة البيانات بنفس جودة الشهادة المدفوعة، وبالنسبة لمتجر صغير غالباً ما تكون هي الإجابة الصحيحة. ما يختلف بين شهادة SSL وأخرى في PrestaShop هو ما قامت هيئة إصدار الشهادات (CA) بالتحقق منه قبل إصدارها، وما يدعمها في حال حدوث خطأ ما.

النوعما تتحقق منه هيئة إصدار الشهاداتمدة الإصدارمناسب لـ
التحقق من النطاق (DV)أنك تتحكم في النطاقدقائقالمتاجر الصغيرة، المتاجر التي تستخدم صفحة دفع مستضافة خارجياً
التحقق من المؤسسة (OV)النطاق بالإضافة إلى شركتك المسجلةمن 1 إلى 3 أيام عملالمتاجر الراسخة، B2B، أي مكان يتحقق فيه المشترون من هوية من يدفعون له
التحقق الموسع (EV)فحص قانوني وتشغيلي كامل للشركةمن 1 إلى 3 أيام عملقيمة الطلبات الأعلى، القطاع المالي، المتاجر التي تتعامل مباشرة مع بيانات البطاقات

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

وهناك أمران آخران خاصان بـ PrestaShop. إذا كنت تدير متجراً متعدد النطاقات الفرعية (multistore)، فإن شهادة Wildcard تغطيها جميعاً بشهادة واحدة بدلاً من شهادة لكل متجر. وبغض النظر عن اختيارك، فإن HTTPS ليس خياراً هنا: بوابات الدفع لن تعالج المعاملات الفعلية عبر HTTP العادي، ومعيار PCI DSS يتطلب تشفيراً قوياً، وفي الواقع TLS 1.2 أو أعلى، على أي صفحة تنقل بيانات البطاقات. إذا لم تكن متأكداً من النوع المناسب لك، فإن SSL Wizard يساعدك على تحديده.

تثبيت الشهادة على خادمك

PrestaShop لا يقوم بتثبيت الشهادات. يحدث ذلك على الخادم أولاً، ولن يُظهر لك PrestaShop حتى مفتاح Enable SSL إلا عندما تتمكن من الوصول إلى لوحة التحكم الخلفية (back office) عبر HTTPS.

  • من لوحة الاستضافة. ابحث عن SSL/TLS أو Let’s Encrypt أو AutoSSL. في cPanel، تجدها تحت Security. أصدر الشهادة لكل من النطاق الأساسي (apex domain) ونسخة www.
  • على خادم VPS. استخدم Certbot، الذي يُصدر الشهادة من سطر الأوامر ويضبط مؤقت التجديد الخاص به.
  • شهادة مدفوعة. أنشئ CSR باستخدام أداة إنشاء CSR الخاصة بنا أو أدلة CSR، أكمل عملية التحقق، ثم قم بتثبيت الشهادة والمفتاح الخاص والشهادات الوسيطة. في cPanel يكون ذلك تحت SSL/TLS > Manage SSL sites، وهو موضح في دليل تثبيت cPanel. المنصات الأخرى موجودة في أدلة تثبيت SSL.

شهادات Let’s Encrypt تدوم 90 يوماً وتتجدد تلقائياً قبل حوالي 30 يوماً من انتهاء صلاحيتها. عندما تتعطل هذه الأتمتة، يستمر المتجر في العمل لأسابيع ثم يصبح غير آمن دون تحذير، وعادة في منتصف عملية بيع. تأكد من أن التجديد التلقائي مفعّل، وتحقق من الشهادة بعد أول تاريخ تجديد متوقع باستخدام SSL Checker.

هناك فخ واحد أكثر أهمية في متجر منه في أي مكان آخر: إذا ثبّت الشهادة بدون الشهادات الوسيطة (intermediate certificates)، فسيظل متصفحك يُظهر رمز القفل، لأن متصفحات سطح المكتب تخزّن الشهادات الوسيطة التي رأتها في مكان آخر. لكن بوابة الدفع لن تفعل ذلك. متجر يبدو سليماً لكنه يفشل عند رد اتصال الدفع (payment callback) غالباً ما يكون سبب ذلك سلسلة شهادات ناقصة.

كيفية تفعيل SSL في PrestaShop

يحتوي PrestaShop على إعدادين لـ SSL، وليس واحداً، والترتيب مهم:

  • Enable SSL يؤمّن صفحات إتمام الطلب والحساب فقط. هذا هو الوضع الافتراضي التاريخي لـ PrestaShop، من زمن كانت المتاجر تقدّم فيه معظم الصفحات عبر HTTP وتشفّر فقط الصفحات الحساسة.
  • Enable SSL on all pages يؤمّن المتجر بالكامل. يبقى هذا الخيار معطلاً (رمادياً) حتى يتم تفعيل Enable SSL وحفظه.

أنت تحتاج إلى تفعيل كلاهما. وهذا هو التسلسل الكامل:

  1. افتح Shop Parameters > General في لوحة التحكم الخلفية. الدروس التعليمية المكتوبة لإصدار PrestaShop 1.6 تسمي هذا Preferences > General؛ تمت إعادة تسمية القائمة في الإصدار 1.7 والإعداد نفسه لم يتغير.
  2. اضغط على “Please click here to check if your shop supports HTTPS.” يعيد هذا الرابط تحميل لوحة التحكم الخلفية عبر HTTPS. يظهر PrestaShop هذا الرابط فقط عندما تكون تشاهد لوحة التحكم الخلفية عبر HTTP عادي، فإذا كنت تدير متجرك فعلياً عبر HTTPS بالفعل فلن ترى هذا الرابط، ويمكنك الانتقال مباشرة للخطوة التالية.
  3. اضبط Enable SSL على Yes.
  4. اضبط Enable SSL on all pages على Yes.
  5. مرّر إلى أسفل الصفحة.
  6. اضغط Save. لا شيء يصبح فعّالاً حتى تفعل ذلك.
إعدادا Enable SSL وEnable SSL on all pages في Shop Parameters بـ PrestaShop

تنطبق هذه التعليمات على PrestaShop 8 و PrestaShop 9. الإصداران 9.1.4 و 8.2.7 كانا الإصدارين الحاليين حتى يونيو 2026. يعمل PrestaShop 1.7 بالطريقة نفسها، لكن الدعم عنه انتهى عند إصدار PrestaShop 9.0 في يونيو 2025، فهو لا يتلقى إصلاحات أمنية بعد الآن، ويجب أن يكون التحديث من ضمن قائمة مهامك. الإصدار 1.6 يستخدم أسماء القوائم القديمة.

لماذا يكون مفتاح Enable SSL معطلاً (رمادياً)

هذه هي أكثر مشكلة شائعة تتعلق بـ SSL في PrestaShop. قبل أي شيء آخر، تحقق من أي من الحالتين التاليتين تنطبق عليك بالفعل.

إذا كان Enable SSL غير موجود على الصفحة بالمرة، فأنت تشاهد لوحة التحكم الخلفية عبر HTTP عادي. يُظهر PrestaShop هذا المفتاح فقط عند وجود اتصال آمن، فعلى لوحة تحكم http:// يظهر لك رابط فحص HTTPS بدلاً منه دون أي مفتاح. صِل إلى لوحة التحكم الخلفية بعنوان https://، عبر الضغط على ذلك الرابط أو كتابة العنوان مباشرة، وسيظهر المفتاح.

إذا كان Enable SSL on all pages ظاهراً لكنه معطل (رمادي)، فراجع هذه الأسباب الثلاثة بالترتيب.

1. لم تقم بالحفظ بعد

هذا هو السبب الأكثر شيوعاً بلا منازع. تقوم بتفعيل Enable SSL، وتنظر إلى Enable SSL on all pages، فتراه لا يزال معطلاً، فتستنتج أن هناك خللاً ما. الأمر ليس كذلك: الإعداد الثاني يُفتح فقط بعد حفظ الأول. مرّر إلى أسفل الصفحة، اضغط Save، وستُعاد الصفحة بتحميل جديد مع تفعيل المفتاح الثاني. يتضمن نظام تتبع المشكلات (issue tracker) الخاص بـ PrestaShop نفسه هذه المشكلة تحت عنوان “Enabling Https/ssl is quite confusing”، فإذا وقعت في هذا الفخ، فأنت في رفقة الكثيرين.

2. فحص HTTPS فشل

إذا لم تتمكن لوحة التحكم الخلفية من التحميل عبر HTTPS بالمرة، أو حذّرك متصفحك عند تحميلها، فإن الشهادة هي المشكلة وليس PrestaShop. الأسباب الشائعة: الشهادة لم تُثبت بعد، أو أنها تغطي www بينما أنت تتصفح النطاق الأساسي (أو العكس)، أو أنها مثبتة بدون شهاداتها الوسيطة. شغّل SSL Checker على النطاق الدقيق الموجود في رابط متجرك، وأصلح ما يُشير إليه قبل العودة إلى لوحة التحكم الخلفية.

3. ضبط الإعداد في قاعدة البيانات

إذا تأكدت من أن الشهادة تعمل بشكل صحيح ومع ذلك لا يزال المفتاح يرفض التفعيل، فإن كلا الإعدادين مخزّنان في جدول ps_configuration ويمكن ضبطهما مباشرة. في phpMyAdmin أو أي عميل SQL:

UPDATE ps_configuration SET value = 1 WHERE name = 'PS_SSL_ENABLED';
UPDATE ps_configuration SET value = 1 WHERE name = 'PS_SSL_ENABLED_EVERYWHERE';

عدّل بادئة الجدول إذا لم تكن ps_ الافتراضية، ثم امسح ذاكرة التخزين المؤقت (cache). للتراجع عن ذلك، مثلاً إذا كانت شهادة معطلة قد حرمتك من الوصول إلى لوحة تحكمك الخلفية، شغّل نفس الجملتين مع 0 بدلاً من 1.

إعادة توجيه HTTP إلى HTTPS في PrestaShop

بعد حفظ كلا الإعدادين، يستجيب PrestaShop بالفعل لطلبات HTTP لصفحات المتجر الأمامية بإعادة توجيه 301 إلى عنوانها عبر HTTPS، بحيث لا تُترك الروابط القديمة والروابط المفهرسة عالقة. لكنه يغطي فقط الطلبات التي تصل فعلياً إلى PrestaShop. الملفات التي تُقدَّم مباشرة من القرص، مثل الصور وملفات PDF وأي شيء تحت /img/ أو /upload/، لا يُعاد توجيهها، ولا كذلك طلبات POST. القاعدة على مستوى الخادم تُغطي كل ذلك، وتُعيد التوجيه دون تشغيل PHP في كل مرة.

اقرأ هذا قبل تعديل أي شيء. ينشئ PrestaShop ملف .htaccess الخاص به، وحفظ Shop Parameters > Traffic & SEO > SEO & URLs يعيد كتابته. لكنه لا يمحو الملف بالكامل. يستبدل PrestaShop فقط الجزء الواقع بين تعليقَي العلامة، # ~~start~~ و # ~~end~~، ويحتفظ بأي شيء يقع أعلاها أو أسفلها، وهذا هو بالضبط ما يخبرك به سطر العلامة نفسه. لذا ضع قواعدك خارج ذلك الجزء وستبقى محفوظة عند كل إعادة إنشاء. أي شيء تلصقه داخل ذلك الجزء يُفقد في المرة القادمة التي تحفظ فيها تلك الصفحة.

على Apache، أضف هذا إلى .htaccess في مجلد جذر متجرك، أعلى سطر # ~~start~~:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

يجب أن يكون الشرط off، بمعنى “أعِد التوجيه عندما لا يكون الطلب آمناً بالفعل”. العلامة R=301 هي ما يجعل إعادة التوجيه دائمة؛ بدونها ستحصل على إعادة توجيه مؤقتة تُشير لمحركات البحث أن لا شيء قد انتقل.

على Nginx لا يوجد .htaccess. عدّل بلوك الخادم (server block) بدلاً من ذلك:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

اختبر بالأمر nginx -t، ثم أعد التحميل بالأمر systemctl reload nginx.

إصلاح ما يتركه التبديل خلفه

مسح ذاكرة التخزين المؤقت (cache) لـ PrestaShop. افعل هذا أولاً. متجر أمامي مخزَّن مؤقتاً سيظل يقدّم صفحات مليئة بترميز HTTP ويجعل التبديل المكتمل يبدو معطلاً. امسح أيضاً شبكة CDN الخاصة بك إن كنت تستخدم واحدة.

إصلاح المحتوى المختلط (mixed content). صفحة تُقدَّم عبر HTTPS ولا تزال تحمّل صورة أو سكريبت أو ورقة أنماط عبر HTTP تُعتبر محتوى مختلطاً. المتصفحات تُرقّي بعض الموارد بصمت، وأغلبها الصور والوسائط، لكنها ترفض غيرها كلياً، وهذا هو سبب أن الصفحة المتأثرة قد تصل بدون تنسيق (unstyled). في PrestaShop، المصادر المعتادة هي روابط ثابتة في صفحات CMS، وإعدادات الموديولات، ووصف المنتجات الملصق من مصادر أخرى. سجلّ المتصفح (browser console) يوضّح اسم الملف المخالف. دليلنا حول كيفية إصلاح المحتوى المختلط يغطي التشخيص بالتفصيل.

أعِد إنشاء خريطة الموقع (sitemap) لتُدرج روابط https، وتحقق من أن أي موديول لا يزال يكتب روابط http في الرسائل الإلكترونية أو الفواتير.

حل مشكلات SSL في PrestaShop

العارضالسببالحل
حلقة إعادة توجيه لا تنتهي بعد تفعيل SSLنمط تشفير Cloudflare مضبوط على Flexible، فيرسل HTTP إلى خادمك الأصلي بينما يقوم خادمك الأصلي بإعادة التوجيه إلى HTTPSاضبط Cloudflare على Full (strict) واحتفظ بشهادة صالحة على الخادم الأصلي
الحرمان من الوصول إلى لوحة التحكم الخلفيةتفعيل SSL بينما الشهادة معطلة أو مفقودةاضبط كلا المفتاحين على 0 في ps_configuration، أصلح الشهادة، ثم حاول مجدداً
القفل مفقود في صفحات المنتج فقطمحتوى مختلط، غالباً صورة منتج أو أصل تابع لموديولاعثر على المورد الذي يستخدم HTTP في سجلّ المتصفح
أصبح المتجر غير آمن بعد أسابيعشهادة Let’s Encrypt انتهت لأن التجديد تعطّلأعِد الإصدار، ثم تأكد من التجديد التلقائي. راجع الشهادات الوسيطة المنتهية
المتصفح سليم، لكن إتمام الطلب أو رد اتصال الدفع يفشلسلسلة شهادات ناقصةثبّت حزمة CA الكاملة، وأعِد الفحص باستخدام SSL Checker
عدم تطابق الاسم على www أو النطاق الأساسيالشهادة تغطي واحداً فقط من الاسمينأعِد الإصدار لتغطية الاثنين. راجع اسم عام غير صالح

إذا كانت الشهادة مثبتة والمتجر لا يزال يُشار إليه كغير آمن، فإن أدلة أخطاء SSL تتعامل مع رموز أخطاء متصفح محددة.

بعد التبديل: قائمة تحقق SEO

  • أضف خاصية HTTPS في Google Search Console. الخاصية القائمة على HTTP لا تُظهر تقارير عن روابط HTTPS. أضف الخاصية الجديدة، أو استخدم خاصية Domain تغطي كليهما.
  • أعِد إرسال خريطة الموقع (sitemap) بروابط https.
  • تحقق من علامات canonical لتشير إلى https في جميع صفحات المنتجات والفئات.
  • حدّث تغذيات Merchant Center، وأدوات التحليل، وأي تكامل مع سوق آخر يخزّن رابط متجرك. تغذيات المنتجات التي تحتوي على روابط http هي عطل شائع يُهمَل غالباً.

توقّع بعض التقلبات. تُعامل Google تبديل HTTP إلى HTTPS كتغيير موقع مع تغيير روابط، فتنقسم مرات الظهور بين خاصيتَي Search Console الخاصتين بك لفترة، وتتقلب التصنيفات لبضعة أسابيع. طالما أن كل رابط يتم حلّه بشكل صحيح وإعادات التوجيه 301 قائمة، فليس هناك شيء يحتاج إلى إصلاح.

بعد أن تصبح HTTPS مستقرة لفترة، فكّر في HSTS، الذي يُخبر المتصفحات برفض HTTP العادي لنطاقك. اترك تعليمة preload معطلة في البداية، لأنها بطيئة عند الرجوع عنها.

الأسئلة الشائعة

كيف أفعّل SSL في PrestaShop؟

ثبّت شهادة على خادمك أولاً، ثم افتح Shop Parameters > General في لوحة التحكم الخلفية، اضغط على الرابط الذي يتحقق مما إذا كان متجرك يدعم HTTPS، اضبط Enable SSL على Yes، اضبط Enable SSL on all pages على Yes، واضغط Save في أسفل الصفحة. PrestaShop لا يُصدر الشهادات بنفسه.

لماذا يكون زر Enable SSL معطلاً (رمادياً) في PrestaShop؟

تحقق أولاً مما إذا كان المفتاح معطلاً أو مفقوداً تماماً. إذا كان Enable SSL غائباً، فأنت تشاهد لوحة التحكم الخلفية عبر HTTP عادي ويُظهر PrestaShop هذا المفتاح فقط عند وجود اتصال آمن، لذا أعِد تحميل لوحة التحكم الخلفية بعنوان https://. إذا كان Enable SSL on all pages معطلاً، فهناك ثلاثة أسباب، مرتبة حسب الاحتمالية. لم تُمرر إلى الأسفل وتحفظ، فالإعداد الثاني لم يُفتح بعد. أو أن فحص HTTPS في PrestaShop فشل لأن الشهادة مفقودة، أو لا تغطي النطاق الذي تستخدمه، أو مثبتة بدون شهاداتها الوسيطة. أو أن الإعداد عالق، وفي هذه الحالة يمكنك ضبط PS_SSL_ENABLED و PS_SSL_ENABLED_EVERYWHERE على 1 مباشرة في جدول ps_configuration.

ما الفرق بين Enable SSL و Enable SSL on all pages؟

Enable SSL يؤمّن فقط صفحات إتمام الطلب وحساب العميل، وهو النهج المعتاد من زمن كانت المتاجر تقدّم فيه كل شيء آخر عبر HTTP. Enable SSL on all pages يؤمّن المتجر بأكمله. الخيار الثاني لا يكون متاحاً حتى يتم تفعيل الأول وحفظه. في أي متجر حديث، أنت تريد كلاهما.

أين يوجد إعداد SSL في PrestaShop؟

Shop Parameters > General في لوحة التحكم الخلفية. الدروس القديمة المكتوبة لإصدار PrestaShop 1.6 تسمي نفس الشاشة Preferences > General، حيث أُعيدت تسمية القائمة في الإصدار 1.7.

كيف أعطّل SSL في PrestaShop؟

اضبط كلا المفتاحين مجدداً على No في Shop Parameters > General واحفظ. إذا كانت شهادة معطلة قد حرمتك من الوصول إلى لوحة التحكم الخلفية، شغّل نفس جملتَي ps_configuration المذكورتين أعلاه مع 0 بدلاً من 1، ثم امسح ذاكرة التخزين المؤقت. تعطيل SSL هو إجراء مؤقت أثناء إصلاح الشهادة، وليس حلاً: بوابات الدفع لن تعمل دون HTTPS.

هل أحتاج إلى شهادة SSL مدفوعة لمتجر PrestaShop؟

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

أي إصدارات PrestaShop تنطبق عليها هذه الخطوات؟

PrestaShop 8 و PrestaShop 9، مع كون 9.1.4 و 8.2.7 الإصدارين الحاليين حتى يونيو 2026. يستخدم PrestaShop 1.7 نفس الإعدادات في نفس المكان، لكنه لم يُصان منذ إصدار PrestaShop 9.0 في يونيو 2025. يسمي PrestaShop 1.6 الشاشة Preferences > General بدلاً من Shop Parameters > General.

هل تنقل منصة مختلفة إلى HTTPS، أو تريد الإجراء العام؟ راجع دليلنا حول كيفية تحويل موقع من HTTP إلى HTTPS.

وفِّر 10% على شهادات SSL عند الطلب اليوم!

إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

صورة مفصلة لتنين أثناء طيرانه

كاتب محتوى متمرس متخصص في شهادات SSL. تحويل موضوعات الأمن السيبراني المعقدة إلى محتوى واضح وجذاب. المساهمة في تحسين الأمن الرقمي من خلال السرد المؤثر.