إن إنشاء شهادة SSL موقعة ذاتيًا ليست عملية معقدة، ولكنها تتطلب بعض الخطوات التفصيلية. لنقم بتفصيل الخطوات بشكل شامل لإنشاء شهادة SSL ذاتية التوقيع لاستخدامها مع خادوم الويب Apache على نظام Ubuntu 16.04.
أولًا وقبل أي شيء آخر، تأكد من أن حزم OpenSSL مثبتة على نظامك. يمكنك فعل ذلك باستخدام الأمر التالي في الطرفية:
bashsudo apt-get update sudo apt-get install openssl
بعد التأكد من تثبيت OpenSSL، نقوم بالبدء في إنشاء مفتاح خاص (private key). يمكن فعل ذلك باستخدام الأمر التالي:
bashopenssl genpkey -algorithm RSA -out /etc/ssl/private/mykey.key -aes256
هذا الأمر يقوم بإنشاء مفتاح خاص بتشفير RSA وحفظه في المسار /etc/ssl/private/mykey.key. سيُطلب منك إدخال كلمة مرور لحماية المفتاح الخاص.
ثم، نقوم بإنشاء شهادة CSR (Certificate Signing Request) باستخدام المفتاح الخاص الذي أنشأناه:
bashopenssl req -new -key /etc/ssl/private/mykey.key -out /etc/ssl/certs/mycsr.csr
هذا الأمر سيُطلب منك إدخال معلومات لشهادتك، بما في ذلك اسم المضيف (Common Name) الذي يجب أن يكون اسم النطاق الخاص بموقعك.
الآن، نقوم بتوقيع الشهادة باستخدام المفتاح الخاص:
bashopenssl x509 -req -days 365 -in /etc/ssl/certs/mycsr.csr -signkey /etc/ssl/private/mykey.key -out /etc/ssl/certs/mycert.crt
في هذا السياق، يتم توقيع الشهادة لمدة سنة (يمكن تعديل هذه المدة حسب احتياجاتك).
الآن، نقوم بتكوين Apache لاستخدام هذه الشهادة. قم بفتح ملف تكوين Apache الرئيسي باستخدام محرر النصوص المفضل لديك:
bashsudo nano /etc/apache2/sites-available/default-ssl.conf
وقم بتحرير الإعدادات التالية لتشير إلى المسار الصحيح للمفتاح الخاص والشهادة:
apacheSSLCertificateFile /etc/ssl/certs/mycert.crt SSLCertificateKeyFile /etc/ssl/private/mykey.key
حفظ التغييرات وأغلق الملف. ثم، قم بتمكين ملف تكوين SSL وأعد تشغيل Apache:
bashsudo a2ensite default-ssl sudo service apache2 restart
تم الآن تكوين خادوم الويب Apache لاستخدام شهادة SSL ذاتية التوقيع. يمكنك زيارة موقعك عبر HTTPS الآن، وسيظهر لك تحذير متصفح بسبب طابع الثقة الذاتية للشهادة، ولكن يمكنك تجاوز هذا التحذير.
يرجى مراعاة أن استخدام شهادات SSL ذاتية التوقيع ليست موصى به للإنتاج أو للمواقع التي تنقل معلومات هامة، حيث أن هذه الشهادات لا تتمتع بالثقة الجذرية من قبل السلطات الشهيرة، وبالتالي قد يتلقى المستخدمون تحذيرات في المتصفح حول عدم صحة الشهادة.
المزيد من المعلومات
بالطبع، دعونا نوسع على الخطوات المذكورة لفهم أفضل لكيفية إنشاء شهادة SSL ذاتية التوقيع لاستخدامها مع خادوم الويب Apache على نظام Ubuntu 16.04.
1. إنشاء مفتاح خاص (Private Key):
في الخطوة الأولى، قمنا بإنشاء مفتاح خاص باستخدام OpenSSL وخوارزمية التشفير RSA. يمكنك تعديل خوارزمية التشفير حسب احتياجاتك، ولكن RSA هي الخوارزمية الشائعة المستخدمة. توجد خطوة تشفير AES256 لحماية المفتاح الخاص.
2. إنشاء شهادة CSR (Certificate Signing Request):
ثم، قمنا بإنشاء ملف CSR الذي يحتوي على المعلومات الخاصة بالشهادة، مثل اسم المضيف (Common Name) والذي يجب أن يتطابق مع اسم النطاق الخاص بموقعك. يتم استخدام هذا الملف عند طلب توقيع الشهادة من جهة اعتماد (CA).
3. توقيع الشهادة:
في الخطوة التالية، تم توقيع شهادة CSR باستخدام المفتاح الخاص الذي قمنا بإنشاءه في الخطوة الأولى. يتم تحديد فترة صلاحية الشهادة (في هذا السياق، تم تعيينها لمدة سنة)، ويتم إنشاء ملف شهادة ناتج بامتداد .crt.
4. تكوين Apache لاستخدام الشهادة:
ثم، قمنا بتكوين ملف تكوين Apache الخاص بـ SSL (default-ssl.conf) ليشير إلى المسارات الصحيحة لملف الشهادة وملف المفتاح الخاص. هذا يعني أن Apache سيقوم بتحميل الشهادة والمفتاح الخاص عند بدء التشغيل.
5. تمكين موقع SSL وإعادة تشغيل Apache:
أخيرًا، قمنا بتمكين موقع SSL باستخدام أمر a2ensite وأعدنا تشغيل خادوم الويب Apache. هذا يسمح لـ Apache بتحميل إعدادات SSL والتبديل إلى الاتصال بشكل آمن عبر HTTPS.
يرجى مراعاة أن هذا النهج ينطوي على استخدام شهادة SSL ذاتية التوقيع، والتي لا تتمتع بالثقة الجذرية من قبل الجهات المعترف بها. يُفضل استخدام شهادة SSL صادرة من جهة اعتماد (CA) موثوقة إذا كنت تدير موقعًا يتطلب مستوى عالٍ من الأمان والثقة من قبل المستخدمين.
الخلاصة
في ختام هذا الموضوع، يظهر أن إنشاء شهادة SSL ذاتية التوقيع لاستخدامها مع خادوم الويب Apache على نظام Ubuntu 16.04 هو عملية تتطلب فهمًا دقيقًا للخطوات المعنية. بدأنا بإنشاء مفتاح خاص بواسطة OpenSSL، ومن ثم قمنا بإنشاء ملف CSR للحصول على شهادة SSL. بعد ذلك، قمنا بتوقيع الشهادة باستخدام المفتاح الخاص الذي أنشأناه، مع تحديد فترة صلاحيتها.
من جانب آخر، قمنا بتكوين خادم الويب Apache ليستخدم الشهادة الجديدة، وكنا حذرين بشأن استخدام شهادات SSL ذاتية التوقيع في بيئات الإنتاج بسبب قلة الثقة بها من قبل المتصفحين. استخدام شهادات SSL من جهات اعتماد (CAs) موثوقة يفضله دائمًا لضمان أمان الاتصال وثقة المستخدمين.
باختصار، تعد عملية إعداد شهادة SSL ذاتية التوقيع على Apache خطوات تتطلب اتباعًا دقيقًا وفهمًا عميقًا للمفاهيم المتعلقة بالتشفير والأمان.