nodesjs 搭建https步驟

nodesjs 搭建https步驟

生成密鑰對

  • 執行命令
openssl genrsa -out privatekey.pem 1024
req -new -key privatekey.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
  • 創建https對象

    var fs = require("fs")
    var options = {

    key: fs.readFileSync('./keys/privatekey.pem'),

    cert: fs.readFileSync('./keys/certificate.pem'),
    passphrase: '123456'  //生成密鑰有密碼時使用
    };
    var server = require('https').createServer(options, app);

便可使用https對象server進行監聽鏈接等等

  • 案例

    
    var express = require('express');
    var app = express();
    var fs = require("fs")
    //var server = require('http').createServer(app);
    var options = {
        key: fs.readFileSync('./keys/privatekey.pem'),
        cert: fs.readFileSync('./keys/certificate.pem'),
        passphrase: '123456'
    };
    var server = require('https').createServer(options, app);
    var SkyRTC = require('skyrtc').listen(server);
    var path = require("path");
    
    var port = process.env.PORT || 3000;
    server.listen(port);
    
    app.use(express.static(path.join(__dirname, 'public')));
    
    app.get('/', function(req, res) {
        res.sendfile(__dirname + '/source/index.html');
    });
    
    SkyRTC.rtc.on('new_connect', function(socket) {
        console.log('創建新連接');
    });
    
    SkyRTC.rtc.on('remove_peer', function(socketId) {
        console.log(socketId + "用戶離開");
    });
    
    SkyRTC.rtc.on('new_peer', function(socket, room) {
        console.log("新用戶" + socket.id + "加入房間" + room);
    });
    
    SkyRTC.rtc.on('socket_message', function(socket, msg) {
        console.log("接收到來自" + socket.id + "的新消息:" + msg);
    });
    
    SkyRTC.rtc.on('ice_candidate', function(socket, ice_candidate) {
        console.log("接收到來自" + socket.id + "的ICE Candidate");
    });
    
    SkyRTC.rtc.on('offer', function(socket, offer) {
        console.log("接收到來自" + socket.id + "的Offer");
    });
    
    SkyRTC.rtc.on('answer', function(socket, answer) {
        console.log("接收到來自" + socket.id + "的Answer");
    });
    
    SkyRTC.rtc.on('error', function(error) {
        console.log("發生錯誤:" + error.message);
    });
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章