Missing PFX or certificate + private key

I installed the keys in node.js, but still I can't get it to work. Can someone tell me what I have to do to make it work correctly. I need to work with https with node.js. I get the following error.

   `tls.js:1127
    throw new Error('Missing PFX or certificate + private key.');
          ^
   Error: Missing PFX or certificate + private key.
    at Server (tls.js:1127:11)
    at new Server (https.js:35:14)
    at Object.exports.createServer (https.js:54:10)
    at Object.<anonymous> (/var/www/html/fusionmate/nodejs/server.js:4:36)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)`

Gets my code

    var
    app         = require('https').createServer(handler),
    io          = require('socket.io')(app),
    redis       = require('redis'),
    fs          = require('fs'),
    redisClient = redis.createClient();


     var options = {
    key: fs.readFileSync('/etc/apache2/ssl/apache.key'),
    cert: fs.readFileSync('/etc/apache2/ssl/apache.crt')
    };
      app.createServer(options);
      app.listen(3000);

       console.log('Realtime Chat Server running at  http://127.0.0.1:3000/');

       function handler (req, res) {
       fs.readFile(__dirname + '/index.html', function(err, data) {
        if(err) {
            res.writeHead(500);
            return res.end('Error loading index.html');
        }
        res.writeHead(200);
        res.end(data);
      });
      }
+4
source share
1 answer

There are two problems here:

  • optionsshould be passed https.createServer()as the first argument (c handleris an optional second argument), but you just pass the request handler function. For example:

    var fs = require('fs');
    var options = {
      key: fs.readFileSync('/etc/apache2/ssl/apache.key'),
      cert: fs.readFileSync('/etc/apache2/ssl/apache.crt')
    };
    var app = require('https').createServer(options, handler);
    // ...
    
  • , createServer() https.Server (app), ( , ).

+4

Source: https://habr.com/ru/post/1620948/


All Articles