ما الجديد

برمجة عامة طريقة استخدام ssl على السيرفر المحلي apache لتستطيع استخدام https بدلا من http

  • بادئ الموضوع بادئ الموضوع shqawe
  • تاريخ البدء تاريخ البدء

بسم الله الرحمن الرحيم الحمد لله والصلاة والسلام على اشرف خلق الله نبينا محمد وعلى آله وصحبة اجمعين اللهم ﻻ علم لنا إﻻ ماعلمتنا إنك انت العليم الحكيم...

shqawe

.:: تركي الودعاني ::.
طاقم الإدارة
إنضم
23 يوليو 2023
المشاركات
433
مستوى التفاعل
182
النقاط
43
بسم الله الرحمن الرحيم

الحمد لله والصلاة والسلام على اشرف خلق الله نبينا محمد وعلى آله وصحبة اجمعين

اللهم ﻻ علم لنا إﻻ ماعلمتنا إنك انت العليم الحكيم, اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وزدنا علما

احب ان اقدم لكم اليوم طريقة استخدام ssl على السيرفر المحلي apache2 لكي تستطيع استخدام https في المتصفح وهذه المشكلة قد يعاني منها من يستخدمون الجافاسكربت في برمجياتهم وفي طلبات ajax في المتصفح ,واحيانا ً قد ﻻ تعمل بعض خصائص المتصفح اذا كنت ﻻ تستخدم https مثل خاصية navigator


لذا سوف اقوم باذن الله بشرح الطريقة بشكل سهل على الجميع

ملاحظة: تم تطبيق الشرح على نظام لينكس ولم يتم التجربة على ويندوز.

بداية نفتح الطرفية او Terminal ومن ثم نقوم بتفعيل ssl عن طريق هذا اﻻمر:

Bash:
sudo a2enmod ssl

ثم نقوم بعمل اعادة تشغيل للسيرفر عن طريق هذا اﻻمر:

Bash:
sudo service apache2 restart

بعد ذلك سوف نقوم بانشاء مجلد ssl داخل مجلد apache2 عن طريق هذا اﻻمر:


Bash:
sudo mkdir /etc/apache2/ssl

اﻻن سوف نقوم بانشاء مفتاح و شهادة ssl داخل المجلد الذي قمنا بانشائه عن طريق هذا اﻻمر:

ASP.net:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

بعد ادخال اﻻمر السابق سوف يتم سؤالك عدة اسئلة وسوف اضع شرح كل سؤال فوقه واﻻجابة امام السؤال:

Bash:
#رمز كود الدولة ويكون من حرفين
Country Name (2 letter code) [AU]: SA
#المنطقة او الولاية
State or Province Name (full name) [Some-State]:RIYADH
#المدينة
Locality Name (eg, city) []:RIYADH City
# اسم الشركة او المؤسسة
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company
# اسم الوحدة او القسم
Organizational Unit Name (eg, section) []:Department of Kittens
# ضع نطاقك الالكتروني
Common Name (e.g. server FQDN or YOUR name) []:your_domain.example
# ضع ايميلك اﻻلكتروني
Email Address []:your_email@domain.example

جميع البيانات التي تدخلها ﻻ يجب ان تكون صحيحة هي مجرد بيانات وهمية لانشاء الشهادة والمفتاح الخاصين بـ ssl

وبعد كتابة جميع اﻻجابات قم بالتعديل على ملف default-ssl.conf بأي محرر نصوص انت تحبه وانا استخدمت gedit ﻻنه اسهل محرر :

Bash:
sudo gedit /etc/apache2/sites-available/default-ssl.conf

وقم بحذف كل ماهو موجود داخل الملف وضع الكود التالي بدلاً عنه:

Apache config:
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin admin@example.com
        ServerName your_domain.example
        ServerAlias www.your_domain.example
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /var/www/html>
            SSLOptions +StdEnvVars
            DirectoryIndex index.php
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
</IfModule>

بعد ذلك احفظ التعديل واغلق الملف

اﻻن سوف نقوم ssl عن طريق الملف الذي قمنا بتعديله عن طريق تنفيذ اﻻمر التالي:

Bash:
sudo a2ensite default-ssl.conf

واخيرا ً كالعادة عند تعديل اي ملف في السيرفر ﻻبد من اعادة تشغيله وذلك عن طريق تنفيذ هذا اﻻمر:

Bash:
sudo service apache2 restart

واﻻن استطيع ان اقول لك مبروك اصبح السيرفر المحلي لديك https://localhost بدلاً http://localhost

وتقبلو احترامي وتقديري
اخوكم
شقاوي
 
لإعداد SSL واستخدام HTTPS على سيرفر محلي يعمل بنظام Apache، يمكنك اتباع الخطوات التالية:

الخطوات لتفعيل SSL على Apache في سيرفر محلي:​

  1. تثبيت OpenSSL (إن لم يكن مثبتًا بالفعل):
    • عادةً ما يأتي OpenSSL مثبتًا مع XAMPP أو WAMP. إذا كنت تستخدم سيرفر Apache مستقل، تأكد من أن OpenSSL مثبت.
  2. تفعيل وحدة SSL في Apache:
    • قم بتفعيل وحدة SSL في Apache عن طريق تحرير ملف إعدادات Apache (httpd.conf):
      • افتح ملف httpd.conf وابحث عن السطر التالي:
        bash
        Copy code
        <span>#LoadModule ssl_module modules/mod_ssl.so</span><br>
      • قم بإزالة علامة # من بداية السطر لتفعيله:
        bash
        Copy code
        LoadModule ssl_module modules/mod_ssl.so<br>
  3. إنشاء شهادة SSL ذاتية التوقيع:
    • انتقل إلى مجلد Apache على جهازك. قد يكون المسار كالتالي:
      • على XAMPP: C:\xampp\apache
      • على WAMP: C:\wamp64\bin\apache\apache2.4.41\conf
    • افتح موجه الأوامر (Command Prompt) وانتقل إلى المجلد bin داخل مجلد Apache. على سبيل المثال:

      bash
      Copy code
      <span>cd</span> C:\xampp\apache\bin<br>
    • استخدم OpenSSL لإنشاء شهادة SSL ذاتية التوقيع:

      bash
      Copy code

    • Bash:
      openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

    • أثناء عملية إنشاء الشهادة، سيُطلب منك إدخال معلومات مثل الدولة والولاية واسم المؤسسة. يمكنك إدخال بياناتك أو تركها فارغة.
  4. تكوين Apache لاستخدام SSL:
    • افتح ملف إعدادات SSL لـ Apache (httpd-ssl.conf). عادةً ما يكون موجودًا في:
      • XAMPP: C:\xampp\apache\conf\extra\httpd-ssl.conf
      • WAMP: C:\wamp64\bin\apache\apache2.4.41\conf\extra\httpd-ssl.conf
    • تأكد من أن المسارات إلى الشهادة (server.crt) والمفتاح الخاص (server.key) صحيحة في الملف:

      bash
      Copy code

      Bash:
      SSLCertificateFile C:/xampp/apache/conf/server.crtSSLCertificateKeyFile C:/xampp/apache/conf/server.key
    • تحقق من أن المنفذ 443 مخصص لـ HTTPS:

      bash
      Copy code

    • Bash:
      VirtualHost _default_:443;
      DocumentRoot "C:/xampp/htdocs"
      ServerName localhost:443
      SSLEngine on
      SSLCertificateFile "C:/xampp/apache/conf/server.crt"
      SSLCertificateKeyFile "C:/xampp/apache/conf/server.key"
      VirtualHost

  5. تفعيل إعدادات SSL في ملف Apache الرئيسي:
    • افتح ملف httpd.conf وتأكد من أن httpd-ssl.conf مشمول (مفعل):
      bash
      Copy code
      Include conf/extra/httpd-ssl.conf<br>
  6. إعادة تشغيل Apache:
    • بعد إجراء التعديلات، أعد تشغيل Apache حتى يتم تفعيل إعدادات SSL.
  7. التحقق من استخدام HTTPS:
    • افتح متصفحك واذهب إلى https://localhost/. إذا كانت إعداداتك صحيحة، سترى علامة القفل (⚠️ قد تظهر علامة تحذير لأن الشهادة ذاتية التوقيع).

ملاحظات:​

  • الشهادة الذاتية التوقيع مفيدة للاستخدام المحلي والتطوير، لكنها غير مناسبة للاستخدام على الويب العام حيث ستحتاج إلى شهادة صادرة من جهة معترف بها.
  • إذا كنت تواجه مشكلات في تحميل الموقع باستخدام HTTPS، تأكد من عدم وجود تعارضات في ملفات إعدادات Apache وأن جميع المسارات والمنافذ محددة بشكل صحيح.
بذلك يمكنك الآن استخدام HTTPS بدلاً من HTTP على السيرفر المحلي الخاص بك.
 
التعديل الأخير بواسطة المشرف:
بارك الله فيك اخوي @rachid وطريقتك اتوقع لمستخدمين ويندوز

اشكرك على اضافة ردك للموضوع ليكون الموضوع شامل للويندوز واللينكس

احترامي وتقديري
اخوك
شقاوي
 
عودة
أعلى