ديف أوبس

إنشاء شهادة SSL موثوقة Apache

إنشاء شهادة SSL موَّقعة ذاتيًا لاستخدامها مع خادوم الوِب Apache على أوبونتو 16.04

في بيئات تطوير البرمجيات أو في الحالات التي تتطلب تأميناً للاتصالات بين العميل والخادم عبر بروتوكول HTTPS، يمكن للمطورين أو مديري الأنظمة إنشاء شهادة SSL موَّقعة ذاتيًا لاستخدامها مع خوادم الويب Apache على أنظمة أوبونتو 16.04. تمثل الشهادات الموقعة ذاتيًا وسيلة فعالة من حيث التكلفة لتأمين البيانات المشفرة بين المستخدم والخادم في غياب الحاجة إلى شهادة SSL موقعة من جهة تصديق موثوقة. في هذا المقال، سنتناول كيفية إنشاء شهادة SSL موقعة ذاتيًا على خادوم Apache باستخدام أداة OpenSSL.

1. متطلبات النظام

قبل البدء في إنشاء شهادة SSL موَّقعة ذاتيًا على خادوم Apache، يجب التأكد من أنك تمتلك بعض الأدوات الأساسية على نظام أوبونتو 16.04. هذه الأدوات تتضمن:

  • Apache Web Server: يجب أن يكون خادم Apache مثبتاً على جهاز أوبونتو.

  • OpenSSL: هذه الأداة ستستخدم لإنشاء الشهادة وملفات المفاتيح الخاصة.

يمكن التحقق من تثبيت Apache وOpenSSL باستخدام الأوامر التالية:

bash
apache2 -v openssl version

إذا لم تكن الأدوات مثبتة بعد، يمكنك تثبيتها عبر الأوامر التالية:

bash
sudo apt update sudo apt install apache2 sudo apt install openssl

2. إنشاء دليل لتخزين الشهادات

من الأفضل إنشاء مجلد مخصص لتخزين ملفات الشهادة والمفاتيح الخاصة بها. في هذا المثال، سننشئ مجلدًا في الدليل /etc/ssl/.

bash
sudo mkdir /etc/ssl/mycerts

3. إنشاء شهادة SSL ومفتاح خاص باستخدام OpenSSL

تتمثل الخطوة الأساسية في إنشاء شهادة SSL موَّقعة ذاتيًا في إنشاء مفتاح خاص وشهادة. يمكن القيام بذلك باستخدام أداة OpenSSL عبر الأوامر التالية:

إنشاء المفتاح الخاص:

bash
sudo openssl genpkey -algorithm RSA -out /etc/ssl/mycerts/myserver.key -aes256

هذا الأمر يقوم بإنشاء مفتاح خاص بتشفير RSA مع تشفير AES-256 لحمايته بكلمة مرور. إذا كنت ترغب في عدم استخدام كلمة مرور للمفتاح، يمكنك استبدال -aes256 بالخيارات المناسبة مثل -nodes لإنشاء المفتاح دون كلمة مرور.

إنشاء طلب التوقيع على الشهادة (CSR):

في هذه الخطوة، سنقوم بإنشاء طلب التوقيع على الشهادة (CSR) الذي سيحتوي على بيانات الشهادة، مثل اسم الخادم والموقع الإلكتروني. استخدم الأمر التالي لإنشاء CSR:

bash
sudo openssl req -new -key /etc/ssl/mycerts/myserver.key -out /etc/ssl/mycerts/myserver.csr

سيطلب منك إدخال عدة معلومات أثناء هذه العملية، مثل:

  • البلد (Country Name)

  • الولاية أو المدينة (State or Province)

  • اسم المنظمة (Organization Name)

  • اسم الوحدة التنظيمية (Organizational Unit Name)

  • اسم المجال (Common Name) الذي يحدد اسم الخادم أو الموقع الإلكتروني.

  • البريد الإلكتروني (Email Address)

إنشاء الشهادة الموقعة ذاتيًا:

الخطوة التالية هي إنشاء الشهادة نفسها باستخدام المفتاح الخاص وطلب التوقيع. مع الشهادات الموقعة ذاتيًا، لا يتم التحقق من قبل جهة تصديق خارجية، ولكن هذا مناسب في البيئات الداخلية أو أثناء التطوير. يمكن إنشاء الشهادة الموقعة ذاتيًا عبر الأمر التالي:

bash
sudo openssl x509 -req -days 365 -in /etc/ssl/mycerts/myserver.csr -signkey /etc/ssl/mycerts/myserver.key -out /etc/ssl/mycerts/myserver.crt

هنا، -days 365 يعني أن الشهادة ستظل صالحة لمدة عام كامل.

4. تكوين Apache لاستخدام شهادة SSL

بعد إنشاء الشهادة والمفتاح الخاص، يجب تكوين Apache لاستخدامهم. يتطلب ذلك تعديل إعدادات Apache الخاصة بالـ SSL.

تمكين وحدات Apache الخاصة بالـ SSL:

يجب التأكد من أن Apache قد تم تهيئته للعمل مع SSL. لتفعيل هذه الوحدات، يمكن استخدام الأوامر التالية:

bash
sudo a2enmod ssl sudo a2ensite default-ssl.conf

تعديل إعدادات SSL في Apache:

الخطوة التالية هي تعديل ملف إعدادات SSL الخاص بـ Apache ليشير إلى الملفات التي تم إنشاؤها. افتح ملف الإعدادات باستخدام محرر النصوص المفضل:

bash
sudo nano /etc/apache2/sites-available/default-ssl.conf

داخل هذا الملف، ابحث عن السطور التالية وقم بتعديلها لتشير إلى مواقع الشهادة والمفتاح:

bash
SSLCertificateFile /etc/ssl/mycerts/myserver.crt SSLCertificateKeyFile /etc/ssl/mycerts/myserver.key

5. إعادة تشغيل Apache

بعد إجراء التعديلات اللازمة على الإعدادات، يجب إعادة تشغيل Apache لتطبيق التغييرات:

bash
sudo systemctl restart apache2

6. اختبار إعدادات SSL

الآن بعد أن تم تكوين Apache لاستخدام شهادة SSL الموقعة ذاتيًا، من المهم التأكد من أن كل شيء يعمل بشكل صحيح. يمكنك اختبار الاتصال المشفر عبر HTTPS بزيارة الموقع المحلي أو الخادم الخاص بك باستخدام:

arduino
https://your-domain-or-ip

ستلاحظ أن المتصفح سيظهر تحذيرًا لأن الشهادة موَّقعة ذاتيًا. على الرغم من ذلك، ستكون هناك إمكانية للوصول إلى الموقع عبر HTTPS وتشفير الاتصال.

7. التعامل مع التحذيرات في المتصفح

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

8. تجديد الشهادة

تعتبر الشهادات الموقعة ذاتيًا صالحة لفترة زمنية معينة. في هذا المثال، تم تحديد مدة صلاحية الشهادة لسنة واحدة. بمجرد قرب انتهاء صلاحية الشهادة، يمكن تجديدها بإنشاء شهادة جديدة باستخدام نفس الخطوات.

bash
sudo openssl x509 -req -days 365 -in /etc/ssl/mycerts/myserver.csr -signkey /etc/ssl/mycerts/myserver.key -out /etc/ssl/mycerts/myserver.crt

يجب أيضًا تحديث طلب التوقيع (CSR) إذا لزم الأمر أو استخدام نفس الطلب القديم إذا لم تتغير أي تفاصيل.

9. نصائح أمنية إضافية

على الرغم من أن الشهادات الموقعة ذاتيًا تعتبر خيارًا جيدًا للبيئات التطويرية أو الاختبارية، إلا أنه في البيئات الإنتاجية يجب عليك دائمًا استخدام شهادات SSL موقعة من قبل سلطة تصديق معترف بها. إضافة إلى ذلك، تأكد من:

  • حفظ المفاتيح الخاصة في مكان آمن.

  • تعطيل إمكانية الوصول العام إلى ملفات الشهادات والمفاتيح عبر إعدادات أمان Apache.

الخاتمة

إنشاء شهادة SSL موَّقعة ذاتيًا لاستخدامها مع خادوم Apache على أوبونتو 16.04 هو إجراء أساسي لضمان أن البيانات المتبادلة بين العميل والخادم يتم تشفيرها بشكل آمن. في بيئات التطوير أو الاختبار، يمكن أن تكون الشهادات الموقعة ذاتيًا حلاً سريعًا وآمنًا، على الرغم من أنها قد تسبب تحذيرات في المتصفحات عند استخدامها في البيئات العامة.