2017-08-21 9 views
0

私のチャットアプリケーションを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 = { ... }; 

の複数のバリエーションから証明書を使用しなければならないと私は私がすべての試してみました信じています可能な組み合わせ。

ウェブサイトをEdgeとChromeの2つのウィンドウで開くと、EdgeからChromeにメッセージを正常に送信できますが、メッセージはEdgeで表示されません。

私はトラックに戻ってくるかもしれない詳細については、事前に感謝!

答えて

0

答えはやや単純でした。証明書を確実に使用できるようにするには、https://www.digicert.com/help/にある診断ツールを使用します。

クライアントから私のNode.jsへの接続については、私はクライアント側でIPを記述しました。パブリックドメインで作成された証明書を使用するときはそのことはしません。そこで私はクライアント側のIPをIPからパブリックドメインに変更しました。

関連する問題