【发布时间】:2019-04-17 21:13:22
【问题描述】:
我正在尝试使用 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);
【问题讨论】:
标签: javascript node.js browser socket.io ssl-certificate