前提・実現したいこと
サーバー側を、node.js の socket.io の書き方で
待ち受けサーバを立てました
openssl で コマンドを送ると、
15872:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:ssl\record\ssl3_record.c:332:
のエラーが出てしまいます。
何か調べる方法があれば教えていただきたいです。
サーバのソースコード
node.js
1var PORT = 5089; 2var fs = require('fs'); 3var SSL_KEY = 'C:\#HTTPS\xxx.pem'; 4var SSL_CERT= 'C:\#HTTPS\xxx.cer'; 5var SSL_CA = 'C:\#HTTPS\xxx.txt'; 6 7// -- SSL https接続 ----- 8var srv = require('https').createServer(); 9var io = require('socket.io')(srv).listen(PORT, { 10 key : fs.readFileSync(SSL_KEY).toString(), 11 cert : fs.readFileSync(SSL_CERT).toString(), 12 ca : fs.readFileSync(SSL_CA).toString() 13}); 14 15console.log('websocket server start. port=' + PORT); 16 17io.sockets.on('connection', function (socket) { 18 console.log('- connection -'); 19 //接続してきたらウェルカムメッセージを送信する 20 setTimeout(function () { 21 socket.emit('message', 'このメッセージが見えていればOK'); 22 }, 500); 23}); 24
試したこと
OPENSSLで以下のコマンドを実行しました。
openssl s_client -connect www.xxx.xxx.jp:5089
以下のようにログが出ました。
C:\#signaling>openssl s_client -connect www.xxx.xxx.jp:5089 CONNECTED(0000008C) 15872:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:ssl\record\ssl3_record.c:332: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 5 bytes and written 216 bytes Verification: OK --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: PSK identity: None PSK identity hint: None SRP username: None Start Time: 1590741981 Timeout : 7200 (sec) Verify return code: 0 (ok) Extended master secret: no ---
補足情報
socket.io ではなく、以下の websocketの書き方で実行すると
connect できるため、証明書は問題ないと考えています。
var fs = require('fs'); var https = require('https'); var WebSocket = require('ws'); var port = 5089; var SSL_KEY = 'C:\#HTTPS\xxx.pem'; var SSL_CERT= 'C:\#HTTPS\xxx.cer'; var SSL_CA = 'C:\#HTTPS\xxx.txt'; //let WebSocketServer = require('ws').Server; var server = https.createServer({ key : fs.readFileSync(SSL_KEY).toString(), cert : fs.readFileSync(SSL_CERT).toString(), ca : fs.readFileSync(SSL_CA).toString() }); server.listen(port); var wsServer = new WebSocket.Server({ server }); console.log('websocket server start. port=' + port); wsServer.on('connection', function(ws) { console.log('- websocket connection -'); : :
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。