मैं HTTPS को नोड के लिए एक्सप्रेस.जेएस पर काम करने की कोशिश कर रहा हूं, और मैं इसका पता नहीं लगा सकता।
यह मेरा app.js
कोड है।
var express = require('express');
var fs = require('fs');
var privateKey = fs.readFileSync('sslcert/server.key');
var certificate = fs.readFileSync('sslcert/server.crt');
var credentials = {key: privateKey, cert: certificate};
var app = express.createServer(credentials);
app.get('/', function(req,res) {
res.send('hello');
});
app.listen(8000);
जब मैं इसे चलाता हूं, तो यह केवल HTTP अनुरोधों का जवाब देता है।
मैंने सरल वनीला node.js
आधारित HTTPS ऐप लिखा है :
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
और जब मैं इस एप्लिकेशन को चलाने के लिए, यह करता है HTTPS अनुरोध का जवाब। ध्यान दें कि मुझे लगता है कि एफएसआर परिणाम के मामलों में () स्ट्रॉन्ग नहीं है, क्योंकि मैंने दोनों के संयोजन का उपयोग किया है और अभी भी कोई बानो नहीं है।
संपादित करने के लिए संपादित करें:
उत्पादन प्रणालियों के लिए, आप शायद अपने नोडज एप्लिकेशन पर प्रॉक्सी अनुरोधों के लिए नगनेक्स या हाप्रोक्सी का उपयोग कर रहे हैं। आप ssl के अनुरोधों को संभालने के लिए nginx को सेटअप कर सकते हैं और बस अपने नोड app से http बोल सकते हैं। js.
ADD से जोड़ें (4/6/2015)
AWS के उपयोग की प्रणालियों के लिए, आप SSL टर्मिनेशन को संभालने के लिए EC2 इलास्टिक लोड बैलेंसर्स का उपयोग करना बेहतर समझते हैं, और अपने EC2 वेब सर्वरों को नियमित HTTP ट्रैफ़िक की अनुमति देते हैं। आगे की सुरक्षा के लिए, अपने सुरक्षा समूह को ऐसे सेट करें कि केवल ELB को HTTP ट्रैफ़िक को EC2 इंस्टेंसेस पर भेजने की अनुमति है, जो बाहरी अनएन्क्रिप्टेड HTTP ट्रैफ़िक को आपकी मशीनों से टकराने से रोकेगा।