2012-05-09 9 views
7

sockjs(nodejsで実行中)にhttps/ssl証明書(および鍵)をインストールするにはどうすればよいですか?sockjsでSSLを設定する

私は現在、最も基本的なセットアップを実行しています。これは、「エコー」の設定例です。それは次のとおりです:

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

ありがとう!

答えて

10

私はそれがにコードを変更することで動作するようになったわかりました:あなたは自己署名証明書を使用している場合

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

(たとえば、ローカルの開発のために)あなたがのためにセキュリティ例外を確認する必要がありますSSLまたはウェブソケットは接続されません。 'http:// localhost:9999/info'(または使用しているホスト/ポート)に行き、ブラウザが表示されるプロンプトに従います。 – robbrit

+3

[sockjs-client-node](https://github.com/sockjs/sockjs-client-node)を使用している場合、これをプログラムでどのように行うかについての考え方はありますか? –

関連する問題