2017-05-29 382 views
0

我有一个节点服务器(Meteor.js)应该使用websockets与另一个服务器进行通信。 由于通信位于不涉及直接用户的服务器之间,因此我选择使用自签名证书。独立nodejs客户端连接到一个自签名websocket(wss)

凡从节点服务器添加证书参数(这是一个客户到其他服务器)

var soc = new WebSocket("wss://localhost:9000") 

我测试与认证不安全模式连接,它工作正常。

var soc = new WebSocket("ws://localhost:9000") 

添加证书申请工作正常后,也从安全模式Android应用程序连接。

+0

谢谢,但是如果我使用Let's Encrypt的自签名证书,我甚至不需要NGINX。 – boulabiar

回答

0

我发现这个解决方案,它允许客户端连接到使用自签名证书的安全套接字的部分是:

“rejectUnauthorized:假”

它接受所有的证书,但它仍然保持连接加密。

'use strict'; 
 
var WebSocket = require('ws'); 
 

 
var soc = new WebSocket("wss://localhost:9000", { 
 
    protocolVersion: 8, 
 
    origin: 'https://localhost:9000', 
 
    rejectUnauthorized: false 
 
}); 
 

 
console.log("launched"); 
 
soc.onopen = function (event) { 
 
    console.log("Sending message"); 
 
    soc.send('{}'); 
 
}; 
 

 
soc.onmessage = function (event) { 
 
    console.log(event.data); 
 
} 
 
soc.on('error', function(event) { 
 
     console.log(event); 
 
});