142

以前は、古いバージョンのエクスプレスでは、次のことができました。

express.createServer({key:'keyFile', cert:'certFile'});

ただし、express の新しいバージョンでは、これは機能しなくなりました。

var app = express();

証明書を設定するために電話する必要がapp.use()ありますか? もしそうなら、どのように?

4

3 に答える 3

172

https.createServerの Express ドキュメントNode ドキュメントを参照してください(これは Express が推奨する使用方法です)。

var privateKey = fs.readFileSync( 'privatekey.pem' );
var certificate = fs.readFileSync( 'certificate.pem' );

https.createServer({
    key: privateKey,
    cert: certificate
}, app).listen(port);

createServer のその他のオプションは、http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener にあります

于 2012-08-04T04:31:49.880 に答える
116

次のボイラープレート コードで SSL を動作させることができました。

var fs = require('fs'),
    http = require('http'),
    https = require('https'),
    express = require('express');

var port = 8000;

var options = {
    key: fs.readFileSync('./ssl/privatekey.pem'),
    cert: fs.readFileSync('./ssl/certificate.pem'),
};

var app = express();

var server = https.createServer(options, app).listen(port, function(){
  console.log("Express server listening on port " + port);
});

app.get('/', function (req, res) {
    res.writeHead(200);
    res.end("hello world\n");
});
于 2012-08-22T17:35:45.363 に答える