Tسيرشدك هذا المقال خلال خطوات تثبيت شهادة ????? SSL الخاصة بك على Nginx وإعداد إعادة توجيه تلقائية من HTTP:// إلى HTTPS://.
1. رفع الشهادات على الخادم حيث يتم استضافة موقعك
بعد إكمال خطوات إنشاء رمز CSR وتفعيل ????? SSL، ستستلم ملف مضغوط يحتوي على شهادات Sectigo (التي كانت تعرف سابقًا باسم Comodo) عبر البريد الإلكتروني. بدلاً من ذلك، يمكنك تحميلها من لوحة حساب NiceNic الخاص بك.
ملاحظة: إذا اخترت خادم NGINX عند تفعيل الشهادة، ستستلم ملف مضغوط يحتوي على ملف شهادة بامتداد '.crt'، وملف حزمة سلطة الشهادة (CA) بامتداد '.ca-bundle'.
قم برفع كلا الملفين إلى خادمك بأي طريقة تفضلها، مثل استخدام عميل FTP، على سبيل المثال.
يمكنك أيضًا تحميل ملف الحزمة الخاصة بكل شهادة باتباع التعليمات هنا.
2. دمج جميع الشهادات في ملف واحد
يجب دمج جميع الشهادات (????? ??_??????.crt و ????? ??_??????.ca-bundle) في ملف '.crt' واحد.
يجب أن تأتي شهادة النطاق الخاص بك أولًا في الملف، تليها سلسلة الشهادات (حزمة CA).
ادخل الدليل الذي رفعت فيه ملفات الشهادة. نفذ الأمر التالي لدمج الملفات:
$ cat ????? ??_??????.crt ????? ??_??????.ca-bundle >> ????? ??_??????_chain.crt
يرجى الملاحظة أنه إذا تم تحميل ملفات الشهادة من حسابك في NiceNic، أفضل أمر لاستخدامه هو:
$ cat ????? ??_??????.crt > ????? ??_??????_chain.crt ; echo >> ????? ??_??????_chain.crt ; cat ????? ??_??????.ca-bundle >> ????? ??_??????_chain.crt
3. إنشاء كتلة خادم Nginx منفصلة أو تعديل ملف التكوين الحالي
لتثبيت شهادة ????? SSL على Nginx، تحتاج لإظهار الملفات التي يستخدمها الخادم، إما عن طريق a) إنشاء ملف تكوين جديد، أو b) تعديل الملف الحالي.
a) بإنشاء ملف تكوين جديد للموقع، يمكنك التأكد من عدم وجود مشاكل مع ملف التكوين المنفصل. علاوة على ذلك، سيكون من الأسهل جدًا استكشاف أخطاء التثبيت في حال حدوث أية مشاكل مع التكوين الجديد.
نقترح إنشاء ملف تكوين جديد في هذا المجلد:
/etc/nginx/conf.d
يمكن فعل ذلك عبر هذا الأمر:
sudo nano /etc/nginx/conf.d/Your_??????*-ssl.conf
حيث أن Your_??????*-ssl.conf هو اسم الملف الذي تم إنشاؤه حديثًا.
بعد ذلك، انسخ والصق أحد كتل الخادم أدناه للمنفذ 443 وحرر المسارات. تأكد من مطابقة اسم الخادم ومسار الجذر في كلا كتلة الخادم للمنفذ 80 وكتلة المنفذ 443. إذا كان لديك أية قيم مهمة أخرى يجب حفظها، انقلها أيضًا إلى كتلة الخادم الجديدة.
b) عدل ملف التكوين الافتراضي لخادم الويب، والذي يحمل الاسم nginx.conf. يجب أن يكون في أحد هذه المجلدات:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
يمكنك أيضًا استخدام هذا الأمر للعثور عليه:
sudo find / -type f -iname "nginx.conf"
بمجرد العثور عليه، افتح الملف باستخدام:
sudo nano nginx.conf
ثم انسخ والصق أحد كتل الخادم للمنفذ 443 الموضحة أدناه وحرر المسارات وفقًا لكتلة الخادم الخاصة بك على المنفذ 80 (مع مطابقة اسم الخادم، ومسار الجذر، وأية قيم مهمة تحتاجها). بدلاً من ذلك، يمكنك نسخ كتلة الخادم للمنفذ 80، ثم لصقها أدناه، وتحديث المنفذ وإضافة التوجيهات اللازمة المتعلقة بـ ????? SSL.
اختر كتلة الخادم:
فيما يلي كتلة خادم لإصدار Nginx الخاص بك.
ملاحظة: للتحقق من إصدار Nginx، نفذ هذا الأمر:
sudo nginx -v

ملاحظة: استبدل قيم أسماء الملفات مثل ????? ??_??????_chain.crt في كتلة الخادم بمعلوماتك الخاصة، وعدل المسارات إليها باستخدام/path/to/.
كتلة الخادم لإصدار Nginx 1.14 وما أقل:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com;
}
ملاحظة: يمكنك تحديد عدة أسماء مضيف في هذا التكوين، إذا لزم الأمر، مثل:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com www.????? ??_??????.your;
}
كتلة الخادم لإصدار Nginx 1.15 وما فوق:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com;
}
ssl_certificate يجب الإشارة إليها إلى الملف الذي يحتوي على الشهادات المدمجة التي أنشأتها سابقًا.
ssl_certificate_key يجب الإشارة إليها إلى المفتاح الخاص الذي تم إنشاؤه مع رمز CSR.
فيما يلي بعض النصائح حول كيفية العثور على المفتاح الخاص على Nginx.
هام: سواء كان لديك شهادة متعددة النطاقات أو شهادة Wildcard، ستحتاج إلى إضافة كتلة خادم منفصلة لكل نطاق/نطاق فرعي مضمن في الشهادة. تأكد من تحديد النطاق/النطاق الفرعي المعني مع المسارات إلى نفس ملفات الشهادة في كتلة الخادم، كما هو موضح أعلاه.
بمجرد إضافة كتلة الخادم المقابلة إلى الملف، تأكد من حفظ التعديلات. بعد ذلك، يمكنك التحقق من التغييرات التي أجريتها باتباع الخطوات التالية.
نفذ هذا الأمر للتحقق من صحة صيغة ملف التكوين:
sudo nginx -t

إذا تلقيت أخطاء، تحقق مجددًا من اتباعك للدليل بشكل صحيح. لا تتردد في الاتصال بفريق الدعم لدينا إذا كان لديك أية أسئلة.
إليك النصيحة: للعثور على سجلات الأخطاء لاستكشاف الأخطاء وإصلاحها، فقط نفذ:
sudo nginx -T | grep 'err??_log'
في حال عدم وجود أي من الملفات المذكورة، أو كانت الملفات معطلة بالتعليق، أو إذا لم يتم تحديد ملفات سجل الأخطاء، يجب التحقق من سجل النظام الافتراضي:
tail /var/log/nginx/err??.log -n 20
إذا عرض الخادم اختبارًا ناجحًا، أعد تشغيل Nginx بهذا الأمر لتطبيق التغييرات:
sudo nginx -s reload
الآن تم تثبيت شهادة ????? SSL الخاصة بك. يمكنك التحقق من التثبيت هنا.
ملاحظات هامة:
أحيانًا، بعد تثبيت ملف ????? SSL الذي تم دمجه باستخدام سطر الأوامر، قد تتلقى رسالة خطأ "Nginx/Apache err??: 0906D066:PEM routines:PEM_read_bio:bad end line"، في هذه الحالة، يمكن العثور على الحل في دليل المراجع.
مشكلة شائعة أخرى في هذه المرحلة هي رسالة الخطأ "Nginx ????? SSL: err??:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch"، يمكنك العثور على المزيد من التفاصيل حولها والطرق المحتملة للحل في هذا المقال.
4. إعداد إعادة التوجيه إلى HTTPS
نقترح عليك تثبيت إعادة التوجيه من HTTP إلى HTTPS. بهذه الطريقة، سيحصل زوار موقعك فقط على الوصول إلى النسخة الآمنة من موقعك.
للقيام بذلك، ستحتاج إلى إضافة سطر واحد إلى ملف التكوين الخاص بكتلة الخادم للمنفذ 80.
نصائح:
يمكنك استخدام أحد الأوامر التالية للبحث عن ملفات التكوين التي تم تمكينها الآن:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
المسارات الافتراضية لملف conf هي:
على نظام Linux المبني على RHEL: /etc/nginx/conf.d/default.conf
على نظام Linux المبني على Debian: /etc/nginx/sites-enabled/default
يمكنك فتح الملفات للتحقق من أي منها يحتوي على كتلة الخادم المطلوبة. لهذا، نفذ:
sudo nano name_of_the_file
بمجرد العثور على الملف الذي يحتوي على كتلة الخادم للمنفذ 80 (منفذ HTTP الافتراضي)، أضف السطر التالي:
return 301 https://$server_name$request_uri;
ملاحظة: يجب إدخال قاعدة إعادة التوجيه أعلاه كآخر سطر في كتلة الخادم.