كيفية تحويل تطبيق ويب Web App من Http إلى Https

كيفية تحويل تطبيق ويب Web App من Http إلى Https 


ماهو تطبيق الويب Web Application كيفية تحويل تطبيق ويب Web App من Http إلى Https
ماهو تطبيق الويب Web Application

ماهو تطبيق الويب Web Application

تطبيق الويب (بالإنجليزية: Web Application)‏ هو تطبيق حاسوبي أو برنامج يمكن الوصول إليه واستخدامه من خلال متصفح الويب، أو عبر شبكة مثل الإنترنت

ماهو أنجولار Angular

كيفية تحويل تطبيق ويب Web App من Http إلى Https
ماهو أنجولار Angular

أنجولار Angular هو إطار عمل تطبيقات ويب مفتوح المصدر محفوظ لجوجل ومجتمع من المطورين الأفراد والشركات. أنشئ هذا الإطار لمعالجة العديد من التحديات التي يواجهها تطوير تطبيقا

ماهو مايكروسوفت أزور Microsoft Azure

كيفية تحويل تطبيق ويب من Http إلى Https
ماهو مايكروسوفت أزور Microsoft Azure


مايكروسوفت أزور أو كما تعرف بـ Microsoft Azure‏ وهي عبارة عن خدمة حوسبة سحابية تم انشائة من قبل شركة مايكروسوفت الرائدة، حيث يقوم مايكروسوفت Azure بانشاء واختبار وتنصيب وإدارة تطبيقات وخدمات من خلال شبكة عالميه من مراكز بيانات مركز بيانات تتم ادارتها من خلال شركة مايكروسوفت وكما انه يزود البرمجيات كخدمة  Software as a Service و منصة العمل كخدمة Platform as a Service‏ فضلاً عن البنيه التحتية Infrastructure as a Service كما يدعم العديد من لغات البرمجة والادوات وإطارات عمل (برمجة) Framework).


ماهو نظام Django

كيفية تحويل تطبيق ويب من Http إلى Https
ماهو نظام Django


Django هو عبارة عن منصة لتصمبم تطبيقات الويب وهو نظام مفتوح المصدر . تم كتابته بلغة Python الهدف منه جعل عملية برمجة المواقع للمطورين سريعة و سلسة.

ماهو بروتكول http و https

كيفية تحويل تطبيق ويب من Http إلى Https
كيفية تحويل تطبيق ويب من Http إلى Https


بروتوكول نقل النص الفائق أو بروتوكول نقل النص التشعبي ‏ هو بروتوكول عديم الحالة لنقل الموارد في الإنترنت، وهو الطريقة الرئيسة والأكثر انتشاراً لنقل البيانات في الشبكة العنكبوتية العالمية. الهدف الأساسي من بنائه كان إيجاد طريقة لنشر واستقبال صفحات HTML. بدأ تطوير البروتوكول من قبل تيم بيرنرز لي في معهد سيرن سنة 1989
HyperText Transfer Protocol (HTTP) هو البروتوكول الذي تستخدمه شبكة الويب العالمية (WWW) لتحديد كيف يجب على مستعرض الويب وخادم الويب تنسيق حزم البيانات ونقلها حتى يتمكنوا من فهم بعضهم البعض. على سبيل المثال؛ عندما تزور موقعًا إلكترونيًا ، فإنك تضع عنوان URL في شريط العناوين وهو طلب HTTP GET (<بروتوكول>: // <server.ip.address> / path / to / مورد) إلى الخادم المحدد في سلسلة العنوان. سيأخذ الطلب شكلاً محددًا من وحدات البت في الحزم التي سيتم إرسالها إلى الخادم ، وسيتمكن الخادم بعد ذلك من تجميع الحزم وفهم الطلب الذي تلقاه من المتصفح لأن كلا الطرفين استخدم بروتوكول HTTP نفسه.

 HyperText Transfer Protocol Secure (HTTPS) هو الإصدار الآمن من بروتوكول HTTP ويركز على تأمين الحزم التي يتم إرسالها بين المتصفح والخادم عن طريق تشفير البيانات داخلها. هذا يمنع هجمات “man in the middle” عن طريق منع المتسللين من قراءة المعلومات داخل الحزم بمجرد اعتراضها. سيستخدم HTTPS إما Secure Socket Layer (SSL) أو Transport Layer Security (TLS) للتشفير ، ويعمل كلاهما على أساس المفاتيح الخاصة والعامة. يستخدم المتصفح المفتاح العام لتشفير البيانات التي يرسلها إلى خادم الويب. يتم الاحتفاظ بالمفتاح الخاص آمنًا على خادم الويب ، ويتم استخدامه لفك تشفير الحزمة الآمنة لمعالجة الطلب داخلها.

 عندما يبدأ مستعرض الويب عملية مصافحة HTTPS (عن طريق وضع عنوان URL في شريط العنوان) ، سيستجيب الخادم بشهادة SSL تحتوي على المفتاح العام الذي سيستخدمه المتصفح لبقية تبادل البيانات بين المتصفح وخادم الويب . سيتم إنشاء الشهادة وتخزينها على خادم الويب ويمكن أن تكون إما "موقعة ذاتيًا" أو موقعة بواسطة "المرجع المصدق". ستنشئ كلتا الطريقتين شهادة SSL صالحة ستمكّن اتصال HTTPS بين المستعرض وخادم الويب. يكمن الاختلاف في أن الشهادة الموقعة من قبل هيئة إصدار الشهادات ستعمل على تنشيط القفل الأخضر في متصفح الويب ، ولن يتم حظر صفحة الويب التي تطلبها تلقائيًا. هذا لأن المرجع المصدق هو طرف ثالث موثوق به أكد أن هوية مالك الخادم تطابق هوية مالك المجال.


بشكل افتراضي ، تستخدم جميع متصفحات الويب المنفذ 80 لطلبات HTTP والمنفذ 443 لطلبات HTTPS. ما لم تقم صراحة بإلحاق رقم منفذ محدد بنهاية عنوان URL.

إنشاء شهادة موقعة ذاتيًا باستخدام openssl


openssl req -newkey rsa:2048 -nodes -keyout < domain-name >.key -x509 -days 365 -out < domain-name >.crt



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


طلب توقيع الشهادة (CSR) هي رسالة مشفرة تحتوي على المفتاح العمومي وغيرها من المعلومات ذات الصلة


openssl req -newkey rsa:2048 -nodes -keyout < domain-name >.key -out < domain-name >.csr


إضافة Apache مع شهادة (شهادات) SSL الخاصة بك


< VirtualHost *:80 > ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com < /VirtualHost > < VirtualHost _default_:443 > ServerName socket.chat DocumentRoot /var/www/example.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/48748798787545ab.crt SSLCertificateKeyFile /etc/apache2/ssl/socket.chat.key SSLCertificateChainFile /etc/apache2/ssl/gd_intermediate.crt SSLCertificateChainFile /etc/apache2/ssl/gd_bundle.crt # self-sign key/certificate below # SSLCertificateFile /etc/apache2/ssl/example.crt # SSLCertificateKeyFile /etc/apache2/ssl/example.key < /VirtualHost >


تحويل طلب HTTP إلى HTTPS

ستلاحظ أن المضيف الظاهري يعتمد على المنفذ 80 لطلب مجال من example.com أو www.example.com.  ثم يعيد توجيه هذا الطلب إلى نفس المجال ، إلا أنه يستخدم بروتوكول HTTPS الآن.


تكوين SSL

كيفية تحويل تطبيق ويب Web App من Http إلى Https
كيفية تحويل تطبيق ويب Web App من Http إلى Https

يستمع نفس المضيف الظاهري أيضًا على المنفذ 443 لطلب مجال من example.com. يتم تمكين SSL ويتم إدخال الشهادات ذات الصلة والمفتاح الخاص مع التوجيه الخاص بكل منهما. سيكون لديك شهادة خاصة واحدة وشهادة شخصية خاصة وشهادة واحدة أو أكثر اعتمادًا على CA. هذه شهادات متسلسلة وتستخدم لأمان المرجع المصدق. لذلك بالنسبة لتوجيه SSLCertificateChainFile ، قد تضطر إلى وضع شهادة وسيطة واحدة أو أكثر.

 تم التعليق في الجزء السفلي على الشهادة والمفتاح الموقعة ذاتيًا. يتم استخدام التكوين أعلاه مع مضيف افتراضي ، ولكن إذا كنت لا تستخدم مضيفات افتراضية ، فيمكن وضع نفس التكوين داخل إما httpd.conf أو ssl.conf اعتمادًا على إصدار Apache الخاص بك.