اذهب إلى المحتوى
  • 0

إنشاء خادم HTTPS باستخدام Node.js

محمد هاني3

السؤال

Recommended Posts

  • 0

يمكنك إستخدام شهادات SSL في nodejs كالتالي:

const https = require('https');
const fs = require('fs');	// تستخدم للتعامل مع الملفات، وسنحتاجها لقراءة محتوى ملفات pem

// key.pem و cert.pem عبارة عن مشارات ملفات الشهادة والمفتاح
const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

// نقوم بتمرير الإعدادات السابقة في التابع createServer
// مع إرسال رسالة Hello, World! للتأكد من أن كل شيء يعمل بشكل سليم
https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("Hello, World!\n");
}).listen(8000);

الآن يمكنك التوجه إلى الرابط التالي للتأكد من أن شهادة SSL تعمل:

https://localhost:8000

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك إستخدام الكود السابق للمدرب سامح أشرف فهو الكود الصحيح الموجود في التوثيق الخاص بNode

لكن هناك بعض المعلومات الإضافية والمهمة وهي لأن لديك في الكائن fs وظيفتين وهما

  • fs.readFileSync للقراءة بشكل متزامن
  • fs.readFile للقراءة بشكل غير متزامن

ففي حالة إنشاء خادم https يجب عليك إستدعاء الوظيفة المتزامنة fs.readFileSync لكي يتم تشغيل الكود بشكل صحيح

فإذا قمت بإستخدام الوظيفة الغير المتزامنة fs.readFile وهي مهمة ولكن ليس في هذه الحالة فسيتم تشغيلها بشكل غير متزامن وينتقل التشغيل الى الكود الآخر المتزامن هذا

https.createServer(options, function (req, res) { // options undefined
  res.writeHead(200);
  res.end("Hello, World!\n");
}).listen(8000)

وسيظهر لك خطأ بأن options هي غير معرفة undefined لأنها ستكون معرفة فيما بعد بعد الإنتهاء من الكود المتزامن 

لذلك تذكر دائماً في هذه الحالة يجب عليك إستخدام الوظيفة المتزامنة fs.readFileSync لكي لاتحصل على مشاكل

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...