首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js和Socket.io -证书无效

问Node.js和Socket.io -证书无效
EN

Stack Overflow用户
提问于 2017-08-21 16:35:39
回答 1查看 504关注 0票数 1

我无法将我的聊天应用程序连接到运行在Ubuntu16.04上的Node.js服务器。问题似乎出在使用'letsencrypt‘生成的ssl证书上。

我已经成功地使用openssl证书连接到我的Node.js服务器-然而,这只适用于我的Chrome浏览器。

以下是我的Node.js部件代码:

代码语言:javascript
复制
let fs = require('fs');
let https = require('https');

var options = {
     key: fs.readFileSync('./file.pem'),
     cert: fs.readFileSync('./file.crt')
};

let server = https.createServer(options);
let io = require('socket.io')(server);

let Redis = require('ioredis');
let redis = new Redis();

redis.subscribe('all-chat');

redis.on('message', function (channel, message) {
    message = JSON.parse(message);
    io.emit(channel + ':' + message.event, message.data);
});

server.listen(3201);

我从浏览器得到的错误代码是。:

代码语言:javascript
复制
net::ERR_INSECURE_RESPONSE

我的猜测是,出于某种奇怪的原因,我获得的证书不遵循某种标准,因此浏览器丢弃了响应。

关于这个问题,我可以在网上收集到一些信息--解决方案应该是使用来自“letsencrypt”的证书和/或.:

代码语言:javascript
复制
var options = { ... };

我相信我已经尝试了所有可能的组合。

如果我在两个窗口中打开我的网站,一个在Edge中,另一个在Chrome中,我可以成功地从Edge向Chrome发送一条消息-但是消息不会像它应该的那样显示在Edge中。

提前感谢任何可能让我重回正轨的细节!

EN

回答 1

Stack Overflow用户

发布于 2017-08-21 23:21:05

答案很简单。为了确保您可以使用证书,您可以使用https://www.digicert.com/help/上的诊断工具。

对于从客户端到我的Node.js端的连接,我在客户端声明了IP -当使用公有领域创建的证书时,这将不起作用。所以我把客户端的IP从IP改成了公有域名,并且成功了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45792611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档