2013-03-17 98 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