2012-05-09 33 views
7

Làm cách nào để cài đặt chứng chỉ https/ssl (và khóa) trong sockjs (chạy trên nút jj)?Thiết lập SSL với sockjs

Tôi hiện đang chạy thiết lập cơ bản nhất, đây là thiết lập mẫu "echo". Nó là như sau:

var http = require('http'); 
var sockjs = require('sockjs'); 
var node_static = require('node-static'); 

// 1. Echo sockjs server 
var sockjs_opts = {sockjs_url: "http://cdn.sockjs.org/sockjs-0.3.min.js"}; 

var sockjs_echo = sockjs.createServer(sockjs_opts); 
sockjs_echo.on('connection', function(conn) { 
    conn.on('data', function(message) { 
     conn.write(message); 
    }); 
}); 

// 2. Static files server 
var static_directory = new node_static.Server(__dirname); 

// 3. Usual http stuff 
var server = http.createServer(); 
server.addListener('request', function(req, res) { 
    static_directory.serve(req, res); 
}); 
server.addListener('upgrade', function(req,res){ 
    res.end(); 
}); 

sockjs_echo.installHandlers(server, {prefix:'/echo'}); 

console.log(' [*] Listening on 0.0.0.0:9999'); 
server.listen(9999, '0.0.0.0'); 

Cảm ơn!

Trả lời

10

Được rồi tôi đã nhận nó để làm việc bằng cách thay đổi mã để:

var http = require('https'); 
var sockjs = require('sockjs'); 
var fs = require("fs"); 

var options = { 
    key: fs.readFileSync('ssl.key'), 
    cert: fs.readFileSync('ssl.crt') 
}; 

var echo = sockjs.createServer(); 
echo.on('connection', function(conn) { 
    conn.on('data', function(message) { 
     conn.write(message); 
    }); 
    conn.on('close', function() {}); 
}); 

var server = http.createServer(options); 
echo.installHandlers(server, {prefix:'/echo'}); 
server.listen(9999, '0.0.0.0'); 
+1

Nếu bạn đang sử dụng một chứng chỉ tự ký (ví dụ cho sự phát triển của địa phương) sau đó bạn sẽ cần phải xác nhận ngoại lệ an ninh cho SSL hoặc các ổ cắm web sẽ không kết nối. Chỉ cần truy cập vào http: // localhost: 9999/info' (hoặc bất kỳ máy chủ/cổng nào bạn đang sử dụng) và làm theo lời nhắc mà trình duyệt của bạn sẽ cung cấp cho bạn. – robbrit

+3

Bất kỳ ý tưởng nào về cách thực hiện chương trình này khi sử dụng [sockjs-client-node] (https://github.com/sockjs/sockjs-client-node)? –

Các vấn đề liên quan