[javascript] Node.js में HTTPS सर्वर कैसे बनाएं?


Answers

एक्सप्रेस एपीआई डॉक्टर इसे स्पष्ट रूप से स्पष्ट करता है।

इसके अतिरिक्त यह उत्तर स्वयं हस्ताक्षरित प्रमाणपत्र बनाने के लिए कदम देता है।

मैंने Node.js HTTPS दस्तावेज़ से कुछ टिप्पणियां और एक स्निपेट जोड़ा है:

var express = require('express');
var https = require('https');
var http = require('http');
var fs = require('fs');

// This line is from the Node.js HTTPS documentation.
var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.cert')
};

// Create a service (the app object is just a callback).
var app = express();

// Create an HTTP service.
http.createServer(app).listen(80);
// Create an HTTPS service identical to the HTTP service.
https.createServer(options, app).listen(443);
Question

एक एसएसएल कुंजी और प्रमाण पत्र को देखते हुए, कोई एक HTTPS सेवा कैसे बनाता है?




  1. यहां से खोलने वाले openssl के लिए रार फ़ाइल डाउनलोड करें: https://indy.fulgan.com/SSL/openssl-0.9.8r-i386-win32-rev2.zip
  2. बस अपने फ़ोल्डर को सी ड्राइव में कॉपी करें।
  3. Openssl.cnf फ़ाइल बनाएं और अपनी सामग्री को यहां से डाउनलोड करें: http://web.mit.edu/crypto/openssl.cnf openssl.cnf को कहीं भी रखा जा सकता है लेकिन जब हम कमांड प्रॉम्प्ट देते हैं तो पथ शोर सही होता है।
  4. ओपन कमांड प्रॉम्प्ट और openssl.cnf पथ सेट करें c: \ set OPENSSL_CONF = d: /openssl.cnf 5. इसे cmd में चलाएं: सी: \ openssl-0.9.8r-i386-win32-rev2> openssl.exe
  5. फिर ओपनएसएसएल> genrsa -des3 -out server.enc.key 1024 चलाएं
  6. फिर यह पास वाक्यांशों के लिए पूछेगा: प्रमाणपत्र के लिए अपना पासवर्ड के रूप में 4 से 11 वर्ण दर्ज करें
  7. फिर इस ओपनेंस> req-new -key server.enc.key -out server.csr चलाएं
  8. फिर यह देश कोड राज्य नाम आदि जैसे कुछ विवरण मांगेगा। इसे स्वतंत्र रूप से भरें। 10। फिर Openssl> rsa -in server.enc.key -out server.key चलाएं
  9. इस OpenSSL> x509 -req -days 365 -in server.csr -signkey server.key -out server.crt को चलाएं, फिर स्टैक ओवरफ़्लो पर मौजूद पिछले कोड का उपयोग करें धन्यवाद



उपर्युक्त उत्तर अच्छे हैं लेकिन एक्सप्रेस और नोड के साथ यह ठीक काम करेगा।

चूंकि एक्सप्रेस आपके लिए ऐप बनाते हैं, इसलिए मैं इसे यहां छोड़ दूंगा।

var express = require('express')
  , fs = require('fs')
  , routes = require('./routes');

var privateKey = fs.readFileSync('cert/key.pem').toString();
var certificate = fs.readFileSync('cert/certificate.pem').toString();  

// To enable HTTPS
var app = module.exports = express.createServer({key: privateKey, cert: certificate});



Node.js में एक HTTPS सर्वर के लिए न्यूनतम सेटअप इस तरह कुछ होगा:

var https = require('https');
var fs = require('fs');

var httpsOptions = {
    key: fs.readFileSync('path/to/server-key.pem'),
    cert: fs.readFileSync('path/to/server-crt.pem')
};

var app = function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}

https.createServer(httpsOptions, app).listen(4433);

यदि आप http अनुरोधों का भी समर्थन करना चाहते हैं, तो आपको केवल यह छोटा संशोधन करना होगा:

var http = require('http');
var https = require('https');
var fs = require('fs');

var httpsOptions = {
    key: fs.readFileSync('path/to/server-key.pem'),
    cert: fs.readFileSync('path/to/server-crt.pem')
};

var app = function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}

http.createServer(app).listen(8888);
https.createServer(httpsOptions, app).listen(4433);





Links