9

我目前正在使用带有连接的 nodejs 作为我的 HTTP 服务器。无论如何用连接激活HTTPS?我找不到任何关于它的文档。谢谢。

赫里

4

2 回答 2

16

不用创建http服务器,而是使用https服务器进行连接:

var fs = require('fs');
var connect = require('connect')
  //, http = require('http'); Use https server instead
  , https = require('https');

var options = {
    key:    fs.readFileSync('ssl/server.key'),
    cert:   fs.readFileSync('ssl/server.crt'),
    ca:     fs.readFileSync('ssl/ca.crt')
};
var app = connect();
https.createServer(options,app).listen(3000);

在此处查看https 此处tls服务器的文档(https 是 tls 的子类)

于 2013-03-17T06:32:57.177 回答
1

来自http://tjholowaychuk.com/post/18418627138/connect-2-0

HTTP 和 HTTPS

以前 connect.Server 继承自 Node 的核心 net.Server,这使得很难为您的应用程序同时提供 HTTP 和 HTTPS。connect()(以前的 connect.createServer())的结果现在只是一个 JavaScript 函数。这意味着您可以省略对 app.listen() 的调用,而只需将 app 传递给 Node net.Server,如下所示:

var connect = require('connect')
  , http = require('http')
  , https = require('https');

var app = connect()
  .use(connect.logger('dev'))
  .use(connect.static('public'))
  .use(function(req, res){
    res.end('hello world\n');
  })

http.createServer(app).listen(80);
https.createServer(tlsOptions, app).listen(443);

express 3.0 也是如此,因为它继承了 connect 2.0

于 2013-03-17T06:32:25.520 回答