2016-07-22 5 views
0

Я пытаюсь перенести сервер HTTPS с Express на Hapi. Сервер работает нормально в Express, но когда я пытаюсь запустить его в Hapi, я получаю сообщения, говорящие «Недопустимые параметры сервера» и «TLS не разрешено».Миграция HTTPS-сервера от Express до Hapi

Это мой (упрощенный) код с курьерским:

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

И это моя (упрощенный) код с Хапи:

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.

ответ

2

Ваш код выглядит довольно близко. Я считаю, что все, что вам нужно сделать, чтобы получить Hapi использовать сертификат и ключ должен просто переместить его на к server.connection вызова, такие как:

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

Это работало, спасибо! – wizplum