繁体   English   中英

缺少PFX或证书+私钥

[英]Missing PFX or certificate + private key

我已经将键设置为node.js但仍然无法让它工作。 任何人都可以告诉我该怎么做才能使它正常工作。 我需要使用带有node.js的https。 我收到以下错误。

   `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)`

她的代码

    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);
      });
      }

这里有两个问题:

  1. 需要将options作为第一个参数传递给https.createServer()handler是可选的第二个参数),但是你只是传递一个请求处理函数。 例如:

     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); // ... 
  2. 再往下,你在https.Serverapp )实例上调用createServer() ,这是不正确的(你已经创建了一个服务器实例,实例没有这样的方法)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM