Socket.io(浏览器到NodeJS)自签名CA与HTTP,内部服务器无连接

时间:2018-10-25 03:46:45

标签: javascript node.js browser socket.io ssl-certificate

我正在尝试使用socket.io从网站连接到NodeJS服务器。两者都托管在局域网中的同一台计算机上。

数据加密非常关键,因为某些数据非常敏感。

因此,我为此网站实现了自签名SSL证书,并设置了套接字也可以使用它。它工作正常,唯一的问题是Chrome告诉该网站不安全(因为它不是官方证书)。因此,我为该网站重新启用了HTTP连接,同时仍将SSL加密用于套接字连接。

这也可以正常工作,但前提是用户首先访问HTTPS网站并接受证书。

手动接受证书,安装证书或忽略浏览器的“不安全”警告都不是可接受的解决方案(企业应用程序)。

套接字是否可以自动接受证书? 也欢迎使用任何其他解决方案,它不必是SSL,只需加密通信(套接字就足够了)。

前端代码:

socketSSL = io.connect('https://192.168.178.10:14444');

NodeJS代码:

var https = require('https');
var express = require('express');
var app = express();
var options = { key: privateKey, cert: certificate };
server = https.createServer(options, app);
server.listen(dstPort);

1 个答案:

答案 0 :(得分:0)

在网络浏览器上,您不能自动绕过自签名证书的安全检查。

如果需要保护数据,则只需在发送方和接收方之间使用“ aes-256”加密和解密。

但是无论哪种方式,密钥都会在网络上公开。

因此,如果它是用于开发/调试的,那么它就可以了。但是,如果要进入生产环境,则强烈建议由有效的CA签署有效的证书。