2017-07-15 109 views
0

所以我切换到HTTPS,一切都很好地运行插座。切换到HTTPS后无法连接到服务器

如果我尝试访问的网站与HTTP,套接字连接,但如果我尝试使用HTTPS连接,我得到:

在控制台的错误:

Failed to load resource: net::ERR_CONNECTION_CLOSED 
Failed to load resource: net::ERR_CONNECTION_CLOSED 
Failed to load resource: net::ERR_CONNECTION_CLOSED 
Failed to load resource: net::ERR_CONNECTION_CLOSED 

前端:

function connect() 
{ 
    if (!SOCKET) 
    { 
     var hash = getCookie('hash'); 
     if (hash == "") { 
      //$.notify('You must login!', 'success'); 
     } 
     if (hash != "") { 
      $.notify('Connecting...', 'success'); 
     } 
     SOCKET = io(':3001'); 
     SOCKET.on('connect', function(msg) { 
      if (hash != "") { 
       //$.notify('Connected!', 'success'); 
      } 
      SOCKET.emit('hash', { 
       hash: hash 
      }); 
      $('#games tr').remove(); 
     }); 
     SOCKET.on('connect_error', function(msg) { 
      $.notify('Connection lost!', 'success'); 
     }); 
     SOCKET.on('message', function(msg) { 
      onMessage(msg); 
     }); 

     SOCKET.on('disconnect', function(m) { 
      SOCKET.emit('disconnect', { 
       uhash: hash 
      }); 
     }); 
    } 
    else 
    { 
     console.log("Error: connection already exists."); 
    } 
} 

的Node.js /后端

var httpsOptions = { 
    cert: fs.readFileSync("/path/to/cert/cert.pem"), 
    ca: fs.readFileSync("/path/to/cert/chain.pem"), 
    key: fs.readFileSync("/path/to/cert/privkey.pem"), 
} 

var server = require('https').createServer(httpsOptions); 
var io = require('socket.io').listen(server); 
server.listen(3001); 
+0

什么是实际错误? –

+0

套接字没有连接.. –

+0

也是我连接丢失! –

回答

0

您的节点应用程序应该只接受HTTP连接。您的Apache服务器应该负责HTTPS。这简化了您的应用程序,并允许Apache为您负载平衡,如果您决定这样做的话。

因此,您的应用和Apache之间应该是HTTP,然后是Apache和客户端之间的HTTPS。有关于如何做到这一点许多导游,我建议您阅读official documentation

如果你决定违背这一点,并在Web应用程序级别(不推荐),那么我们就需要更多的信息,实现SSL。

+0

因此node.js服务器可以使用http.createserver保持HTTP状态? –

+0

是的,您应该将节点服务器绑定到127.0.0.1,以便它只能在内部访问,然后让Apache通过代理连接到它。所以Apache将接收HTTPS连接,然后通过HTTP将数据传递给Node。这在安全性方面很好,因为它是内部通信。 – rubenwardy

+0

顺便说一句,HTTPS已经正常工作,免除了Socket.IO连接。 –