طلب شهادة SSL أمر، وتثبيتها بشكل صحيح أمر آخر. يوضح هذا الدليل المسار الكامل من الطلب إلى إعادة توجيه HTTPS، سواء على استضافة cPanel أو على خادم تديره بنفسك.
طلب الشهادة المناسبة
حدّد أولًا التغطية (اسم واحد أو عدة أسماء أو wildcard) ثم مستوى التحقق. في استضافة cPanel تُصدر شهادة Let's Encrypt تلقائيًا، ولا حاجة إلى توليد أي شيء لتفعيلها. أما الشهادة المدفوعة فيتم طلبها من صفحة المنتج، وتطلب خطوة الإعداد طلب توقيع الشهادة (CSR) والاسم الدقيق المطلوب حمايته.
يجب أن يكون الاسم اسم مضيف كاملًا: example.com وwww.example.com اسمان مختلفان ما لم تغطهما الشهادة معًا. وفي حالة wildcard يكون الطلب على *.example.com الذي يغطي كل النطاقات الفرعية في مستوى واحد دون قمة النطاق.
توليد طلب توقيع الشهادة (CSR)
يحتوي CSR على الاسم المطلوب حمايته وعلى مفتاحك العام، ولا يحتوي على المفتاح الخاص. ولّده على الخادم الذي سيستضيف الموقع:
openssl req -new -newkey rsa:2048 -nodes \ -keyout /root/example.key -out /root/example.csr cat /root/example.csr
ألصق محتوى example.csr في نموذج الطلب دون أسطر العنوان. واحتفظ بـ example.key على الخادم ولا تشاركه مع أحد: CSR وحده هو الموجّه إلى جهة إصدار الشهادات. وعند التجديد أو إعادة التثبيت يلزم عادة CSR جديد.
التحقق من النطاق
- تحقق DV: عبر بريد إلكتروني إلى عنوان معياري للنطاق، أو عبر سجل DNS توفره الجهة، أو عبر ملف يُوضع على الموقع.
- تحقق OV: التحقق من الوجود القانوني للمؤسسة، مع مستندات عند الحاجة.
- تحقق EV: تحقق معزّز يشمل المؤسسة والجهة الطالبة.
أجب عن طلبات الجهة بدقة: التحقق الناقص هو السبب الأول لتعليق الطلب. تتراوح المدة من دقائق في DV إلى بضعة أيام في EV.
تثبيت الشهادة
في cPanel افتح إدارة SSL ثم خيار تثبيت الشهادة: ألصق الشهادة وسلسلة الوسائط التي توفّرها الجهة والمفتاح الخاص، ثم ثبّت. وعلى خادم nginx أعلن الملفات في كتلة الموقع:
ssl_certificate /etc/ssl/example.crt; ssl_certificate_key /etc/ssl/example.key;
يجب تضمين سلسلة الوسائط في ملف الشهادة، وإلا رأى بعض العملاء سلسلة غير مكتملة. وبعد أي تعديل اختبر الإعداد ثم أعد تحميل الخدمة، وليس العكس.
فرض إعادة التوجيه إلى HTTPS
بعد تفعيل الشهادة أعد توجيه حركة HTTP إلى HTTPS. في cPanel فعّل خيار إعادة التوجيه القسري للنطاق. وعلى الخادم أضف قاعدة إلى ملف إعداد الموقع:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ثم تحقق من أن أي مورد في الموقع لا يُحمَّل عبر HTTP، وإلا أبلغ المتصفح عن محتوى مختلط رغم ظهور القفل.
التحقق من النتيجة
- يظهر القفل وتعرض الشهادة الاسم الصحيح.
- يتوافق تاريخ الانتهاء والجهة المصدرة مع الطلب.
- تُحمَّل الصور والسكربتات وأوراق الأنماط في نسخة HTTPS من الموقع.
- الشهادة نفسها على النطاق وعلى www إذا كان الاثنان مستخدمين.