使用nodejs和connect的HTTPS

oxalkeyp  于 2023-05-28  发布在  Node.js
关注(0)|答案(2)|浏览(205)

我目前使用nodejs和connect作为我的HTTP服务器。
有办法通过connect激活HTTPS吗?
我找不到任何关于它的文件。

8ehkhllq

8ehkhllq1#

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

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的子类)的文档

ibrsph3r

ibrsph3r2#

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

express3.0也是如此,因为它继承了connect2.0

相关问题