2016-07-22 36 views
0

Ich versuche, einen HTTPS-Server von Express zu Hapi zu migrieren. Der Server läuft bei Express einwandfrei, aber wenn ich versuche, ihn in Hapi auszuführen, erhalte ich die Meldung "Ungültige Serveroptionen" und "TLS ist nicht erlaubt".Migrieren von HTTPS-Server von Express zu Hapi

Dies ist mein (vereinfacht) Code mit 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); 

Und das ist mein (vereinfacht) Code mit 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(); 

ich ein selbst signiertes Zertifikat bin mit, aber Ich denke, das sollte in Ordnung sein? Es funktioniert in Express.

Antwort

2

Ihr Code sieht ziemlich eng aus. Ich glaube, dass alles, was Sie tun müssen, um Hapi zu Ihrem Zertifikat zu erhalten zu verwenden und Schlüssel ist, um es einfach zu dem server.connection Anruf zu bewegen über, wie zum Beispiel:

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

Das funktionierte, danke! – wizplum