【问题标题】:Migrating HTTPS server from Express to Hapi将 HTTPS 服务器从 Express 迁移到 Hapi
【发布时间】:2023-03-05 16:22:01
【问题描述】:

我正在尝试将 HTTPS 服务器从 Express 迁移到 Hapi。服务器在 Express 上运行良好,但是当我尝试在 Hapi 中运行它时,我收到消息说“无效的服务器选项”和“不允许使用 TLS”。

这是我使用 Express 的(简化)代码:

var fs = require('fs');
var https = require('https');
var app = require('express')();
var options = {
   key: fs.readFileSync('server.key'),
   cert: fs.readFileSync('server.crt')
};

app.get('/', function (req, res) {
   res.send('Hello World!');
});

https.createServer(options, app).listen(8081);

这是我的(简化的)Hapi 代码:

var fs = require('fs');
var Hapi = require('hapi');

var options = {
    tls: {
       key: fs.readFileSync('server.key'),
       cert: fs.readFileSync('server.crt')
    }
};
var server = new Hapi.Server(options);

server.connection({ host: 'localhost', port: 8081 });

server.route({
    method: 'GET',
    path: '/', 
    handler: function (request, reply) {
        return reply('Hello world!');
    }
});

server.start();

我使用的是自签名证书,但我想应该没问题吧?它确实适用于 Express。

【问题讨论】:

    标签: node.js express https hapijs tls1.2


    【解决方案1】:

    您的代码看起来非常接近。我相信您要做的就是让 Hapi 使用您的证书和密钥,只需将其移至 server.connection 调用,例如:

    server.connection({
      host: 'localhost', 
      port: 8081,
      tls: {
        key: fs.readFileSync('server.key'),
        cert: fs.readFileSync('server.crt')
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 2018-07-04
      • 2014-12-03
      • 2015-03-01
      相关资源
      最近更新 更多