node.js - 缺少 PFX 或证书 + 私钥

标签 node.js ssl express https

我已经设置了 node.js 的 key ,但我仍然无法让它工作。 谁能告诉我我应该怎么做才能让它正常工作。 我需要使用 https 和 node.js。 我收到以下错误。

   `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.Server (app) 实例上调用 createServer(),这不是不正确(您已经创建了一个服务器实例,而实例没有这样的方法)。

关于node.js - 缺少 PFX 或证书 + 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34377919/

相关文章:

node.js - Mongoose / express : average of subdocuments

Node.js OpenStack Swift 插件连接错误

node.js - fetch POST 在 Express API 服务器 React FrontEnd 中仅返回 _id 对象

javascript - 使用 Express 服务器和 gulp 查找 View 失败

javascript - 在express.js中,为什么当变量 'app'在其自己的定义中使用时没有错误?

node.js - 如何在 mongodb 中找到整数值的 $regex?

node.js - Sail.js 运行命令刷新数据库后需要重新启动服务器

node.js - 使用不是 id 的字段填充 mongoose 模型

java - 如何在 Java 中发起 HTTPS post 请求?

php - 强制域在不同的 UID 下运行 apache 在 SSL 下中断