快速 4 中的 Https

Sim*_*aur 3 ssl https node.js express

#!/usr/bin/env node
let debug = require('debug')('sbl');
let app = require('../app');
let config = require('config');

app.set('port', process.env.NODE_PORT || config.sbl.port || 15000);

let server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
  console.logger.debug('Express server listening on port ' + server.address().port);
});
Run Code Online (Sandbox Code Playgroud)

这是到目前为止的样子并且可以正常使用http.

我如何使它与 https 一起使用?

Gui*_*ido 5

您可以使用createServer“http”和“https”模块中可用的功能。

const express = require('express');
const http = require('http');
const https = require('https');
const fs = require('fs');

const app = express();

// start http server
const port = process.env.NODE_PORT || config.sbl.port || 15000;
let server = http.createServer(app).listen(port);

// start https server
let sslOptions = {
   key: fs.readFileSync('key.pem'),
   cert: fs.readFileSync('cert.pem')
};

let serverHttps = https.createServer(sslOptions, app).listen(443)
Run Code Online (Sandbox Code Playgroud)

您可以使用openssl.

  • 您可以删除 app.listen(xxx)。根据文档 (http://expressjs.com/en/api.html#app.listen),此调用与 Node 的 http.Server.listen() 相同。您还可以在文档中看到创建 http+https 服务器的示例。代码与我在答案中发布的代码相同,使用 createServer。如果你叫它 const app = express(); 可能更清楚。 (2认同)