أمن المعلومات والخصوصيّة أمر ضروري جدّاً في إنترنت اليوم خصوصاً في ظلّ الارتفاع الكبير في نسبة الهجمات التي تستهدف المعلومات الماديّة والشخصية للمستخدمين. في هذه التدوينة سأتطرق إلى عملية إنشاء وتثبيت الشهادات والتي تسمح للمستخدمين بالاتصال بخدمة ما على خادم الشبكة (الويب) بطريقة آمنة مبنية على برتوكول SSL.
ما هو ال SSL؟
هو عبارة عن اختصار لكلمة “secure socket Layer “ بروتوكول يقوم بتشفير البيانات المنتقلة من وإلى متصفح الانترنت و الخادم “server” باستخدام مفتاحين للقيام بعملية التشفير ، المفتاح الأول وهو مفتاح عام “public key” يقوم المفتاح الأول بتشفير العملية “http transaction” ، ويقوم المفتاح الثاني وهو مفتاح خاص ”private key” يمكن الحصول على مزيد من التفاصيل من هنا
عندما تقوم بزيارة موقع مثل الموقع الخاص ب amazon.com وتقوم بتسجيل عملية الدخول ستلاحظ أن العنوان يبدأ ب HTTPS وهو عبارة عن برتوكل HTTP عبر SSL. ولكن كيف يمكنك أن تتأكد من أن الموقع هو بالفعل لأمازون؟ الجواب من خلال الشهادات. الشهادات يمكن الحصول عليها من جهة ثالثة متفق عليها مثل Verisgin تثبت للمستخدم أن الموقع بالفعل لأمازون. ولكن يمكن لمدير الموقع إنشاء شهادة خاصّة بموقعه تسمح لزوّاره بتأمين اتصالهم بخادمه. المدير هنا لا يحتاج إلى طرف ثالث من أجل اثبات أنه بالفعل نفس الشخص. (خصوصاً في المواقع ذات الطبيعة غير التجاريّة. . (مثل خدمة SVN وسيأتي إن شاء الله في تدوينة لاحقة شرح استخدامها مع ssl)
هذه التدوينة ستشرح إن شاء الله الخطوات المطلوبة لاصدار وتثبيت شهادة سواء من طرف ثالث أو من نفس الشخص. وهي تفترض أنّ الخادم لديك بستخدم توزيعة ابنتو وتمّ تثبيت اباشي عليه.
الخطوة الأولى هي إنشاء المفتاح الخاص بك:
openssl genrsa -des3 -out mtafran_com.key 2048
هذا الأمر معناه استخدم مولد مفاتيح rsa وقم بوضع حماية عليه باستخدام des3 لتوليد مفتاح وخزنه في ملف اسمه mtafran_com.key بطول 2048 (للمفتاح).
الان سنستخدم هذا المفتاح في عملية إنشاء طلب شهادة.
openssl req -new -key mtafran_com.key -out mtafran_com.csr
الملف ذو الامتداد csr ( SSL Certificate Signing Request) يتم ارساله إلى الطرف الثالث (مثلاً verisign) ليتم استخدامه في اصدار الشهادة للموقع (أو ملف ال crt)
قبل اصدار الملف سيتم سؤالك بضعة أسئلة عن الدولة والبلد والشركة والدائرة (داخل الشركة في الغالب دائرة التكنولوجيا) والاسم كالتالي
Enter pass phrase for mtafran_com.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:NA
State or Province Name (full name) [Some-State]:NA
Locality Name (eg, city) []:NA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mtafran
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:Ba7eth
Email Address []:email@mtafran.com
تم حذف بعض المخرجات لتسهيل العرض
لاحظ أنّه قد تمّ سؤالنا عن كلمة المرور التي استخدامها كحماية للمفتاح. وأخيراً تعطى الخيار بوضع كلمة مرور لملف ال csr يمكنك تركه فارغاً بضغط مفتاح الدخول.
إذا أردنا أن نصدر شهادة موقّعة ذاتيّاً نقوم بتنفيذ الأمر التالي:
openssl x509 -req -days 365 -in mtafran_com.csr -signkey mtafran_com.key -out mtafran_com.crt
ومعناه أصدر شهادة باستخدام معيار x509 صالحة لسنة (365 يوماً).
لاحظ استخدام المفتاح و الطّلب لاصدارة الشهادة.
ملاحظة: في حالة قمنا باصدار شهادة لموقع mtafran.com مثلاً ونريد التّأكد من كون الشهادة قم تمّ تظمينها بالفعل قبل تضمين الشهادة في خادم الويب تمهيداً لنشرها نقوم بتنفيذ الأمر التالي:
openssl x509 -text -noout -in mtafran_com.pem
لتثبيت المفتاح والشهادة لاستخدامها في أباشي:
الطريقة التي افضّلها هي عملية جمع الملفين في ملف من نوع pem كالتالي
cat mtafran_com.key mtafran_com.crt > mtafran_com.pem
ثم انسخ الملف في
cp mtafran_com.pem /etc/ssl/certs
بعدها افتح الملف الافتراضي
vi /etc/apache2/sites-available/default-ssl
وتأكد من ان تكون اعداداتك كالتالي
SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/mtafran_com.pem
بعد ذلك نحتاج إلى تفعيل منفذ 443 من خلال
echo "Listen 443" >> /etc/apache2/ports.conf
ثم تفعيل الوحدة التالية
a2enmod ssl
ثم تفيعل الموقع الافتراضي لل SSL
a2ensite default-ssl
انتهى الان اعد تشغيل اباشي
/etc/init.d/apache2 restart
ملاحظة: أباتشي سيقوم بسؤالك عن كلمة المرور الخاص بالمفتاح لإكمال عملية إعادة تشغيله مع الشهادة.
ومن ثم زر الصفحة للتّاكد من أنها تعمل
https://mtafran.com
merci pour ces information je veux bien comment securiser mon poste avec ssl