我在將我的聊天應用程序連接到運行在Ubuntu 16.04上的Node.js服務器時遇到問題。問題似乎是使用'letsencrypt'生成的ssl證書。Node.js和Socket.io - 證書無效
我已經使用openssl證書成功連接到了我的Node.js服務器 - 但這隻適用於我的Chrome瀏覽器。
這裏是我的Node.js的部分代碼:
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);
錯誤代碼,我從我的瀏覽器得到的是:
net::ERR_INSECURE_RESPONSE
我的猜測是,一些奇怪的因爲我獲得的證書沒有遵循某種標準,所以瀏覽器放棄了迴應。
對於我可以收集有關這個問題的網絡上 - 該解決方案應該使用從「letsencrypt」和/或:
var options = { ... };
多變化的證書,我相信我已經想盡可能的組合。
如果我在兩個窗口中打開我的網站,一個在邊緣,另一個在Chrome中,我可以成功將消息從邊緣發送到Chrome - 但該消息不會顯示在Edge中。
預先感謝任何細節,可能會讓我回到正軌!