2013-03-17 116 views
7

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

亨利

+0

http://nodejs.org/api/https.html#https_class_https_server。 – verisimilitude 2013-03-17 04:39:54

+1

查看Connect 2.0上的这篇博文http://tjholowaychuk.com/post/18418627138/connect-2-0 – 2013-03-17 06:03:59

+0

很好。感谢您的帮助。 – herry 2013-03-20 00:46:51

回答

11

而不是创造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(https是tls的子类)here

1

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

HTTP和HTTPS

此前connect.Server从节点的核心net.Server继承来的, 使得它很难为应用程序提供HTTP和HTTPS 。 connect()(以前的connect.createServer())的结果现在是 ,只是一个JavaScript函数。这意味着,你可以省略调用 app.listen(),并且只需通过应用节点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); 

这同样适用于快递3.0无疑的,因为它继承连接2.0