Converted to https with self signed cert

This commit is contained in:
gltron
2020-03-26 15:05:13 +01:00
parent 71925c6e81
commit a0b28ac1b8
4 changed files with 160 additions and 6 deletions

21
server/cert.pem Normal file
View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUCxwidJiV5wAryWiBk5lYIRxcmQ8wDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDAzMjYxNDAzMzNaFw0yMTAz
MjYxNDAzMzNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCuBzkv9ucrpQIErhGh+oXZ/AJzmQdLf5yktJGLbnLZ
D81nE6cX6sbpPyehQRWwAf9a6LWGyQeK37ne4atxbJgsQlqaxWeZuovk0QJXhBrV
A3t9NdIDzzknH6NWzSPhOwDn86GvbMF52AE1kZyy1PIA72cGj7rJWaQAb1fK3BmP
GRGUCm/pJjXHrEaGH4S9EWI3AstX8M8gYFkAS9uWtWznWafUMHbPV0TEni6tFd6g
aaEVSR2iUjimRLTwcEiCFi3Xt9SdewlsyuY/hSQHUyB9qvrupV8chtUHi66eajmS
5CljcY9kSJHKHMwH11w9xu/P76yA9hp7l+u/QzvAt4sBAgMBAAGjUzBRMB0GA1Ud
DgQWBBQgSk64b5N5DjHOG4PLZeq1hmzphDAfBgNVHSMEGDAWgBQgSk64b5N5DjHO
G4PLZeq1hmzphDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBG
KJ/o5HW5+XZauEOG9S51I5IHvEuMUd+3SDCIr6OZlGWma+kaGpKwJGGlTGyla1Sx
kA6i3e4NLVJjsfJVhtn/Wnxhjecv6NnjHgdiGsGkqBKms7k8WWCZghybsTvQpy7z
tTbn6t8VRW3Gun4xuTj2b9aOW/bCuVKt3F0vvneweoCAQ2S1dO/UGYjuMnVv7pI4
tGqT2L1q9xyrEgnU1jbRTGcZr4R/m1GLeD6YQS3ya/IbLRApxU5oIJSF0CSgpL4O
Eu3vHeDbc2B9HizMWOc91Fa06lagr1cI5AvvVZ6xEy1+pHl5b3HYF/XeSimAcFUK
0jWniQ5w82bNcjNYSJHa
-----END CERTIFICATE-----

View File

@@ -1,5 +1,4 @@
//connecting to our signaling server const conn = new WebSocket('wss://localhost:8080')
var conn = new WebSocket('ws://gltronic.ovh/lilstreamy/ws');
conn.onopen = function () { conn.onopen = function () {
console.log('Connected to the signaling server') console.log('Connected to the signaling server')

27
server/key.pem Normal file
View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEArgc5L/bnK6UCBK4RofqF2fwCc5kHS3+cpLSRi25y2Q/NZxOn
F+rG6T8noUEVsAH/Wui1hskHit+53uGrcWyYLEJamsVnmbqL5NECV4Qa1QN7fTXS
A885Jx+jVs0j4TsA5/Ohr2zBedgBNZGcstTyAO9nBo+6yVmkAG9XytwZjxkRlApv
6SY1x6xGhh+EvRFiNwLLV/DPIGBZAEvblrVs51mn1DB2z1dExJ4urRXeoGmhFUkd
olI4pkS08HBIghYt17fUnXsJbMrmP4UkB1Mgfar67qVfHIbVB4uunmo5kuQpY3GP
ZEiRyhzMB9dcPcbvz++sgPYae5frv0M7wLeLAQIDAQABAoIBAQCgZ+oPSt4jPXHR
zHxWN+teVEoSMPAnZ9WDfyhUQ5a6ejVSmCvBANcdMOgfWzVZSU4MhkijlvJL0BGr
3YhAAN92lCadV+05JlhBrWEiN5Lf2tjdPVl5x2yfoirVHDrBJLieE9NpNa5T14St
0qyDrYHu2Lu2sY5yfxyKhhZ+1kb8vJJK7z3NnSHN3rWJ3FMOAvQZaZnuAcaYP7GK
BgUP86aCNk2w2ke6K+BZpRE0+xv1tXwycKk2WiRb80UUmQ9hrYICThkTuVkRWcVp
Z3dZTfzJdUEJr0QQoEDBbd/4VBp1VWgUk7PstzsdB6uC1FMyQakAO+pXvZjSfskn
07zmt+9RAoGBANnBG2GKEhAziFddbR2bTSOijwgD49WNXbaYFO6GFCAukOv79smd
+WTWIhcPPyym+KSYMNjfHiizzNedF2Hya2IjkYiHsTTrqZKxCubEKDI0MUPqCEeJ
DrwBw0exkvbZa8Zfq2CZLvjtm52yynHDqwJsT1XyD+KrjMEBF1+hi4EFAoGBAMyY
DvF/wwXUAxnwN/2skR84004xosL5CXeCARDiTFGo2a+UVX3lT3jZt5fggh11D0B0
66LlJt7xlYV5XF4JqQ87REh5o/TpvnCV5yEj+JAQPxTJVz99Pn+h57Sz7N/7vTri
zdatQGz31fvTqt8d7S1/IpANID/sdM+xWzcr6XLNAoGBAMaBo9RnadAbKk96e95h
lRDHQFyuLySemq+6NFq9H9u2l6aJK5Dg0ll6W9lprM2n6UMi+mS6AWRZhIOKUaaY
uAvfIOy1xnXX3946RxXX/EzIB6FB2Apeh3Acq0jQOImP6xAMZs7I1mlXMmWwd5z+
IwcydaCD6rdYbBgGRqiHPAWBAoGALammdCoCufNGuexOYtS4ExLYvnP/kqqIfV7L
pBwN0o/v/esKZa3fXeahvkkCYVa2D7nIubORSGL87yxV/DsFu3uL0u0rNcdRlMkw
K8peeLDXk2kYivgGEfBtyXv620bRRipGrKpAXdG2tZzZXzDLtcLRUPtM/ldk/tHj
vN2VHeUCgYEAvvsPEQHlc+p2E6uyGWmMWume9pSOpUIZCfXFvDK/kJvapBsHGUNb
zlDEi+pPnhzZONbRL5a+IEeuu9z9HKHdQJJBSkE86lm7mMzgpOWhsENYUEtoCDm1
xd8ft+nbXuPR1j2M1KeB7rFeqobcDV4LaQtxBOdm9zpf3dlyBstbwwo=
-----END RSA PRIVATE KEY-----

View File

@@ -1,12 +1,18 @@
const express = require('express') const express = require('express')
const fs = require('fs')
const bodyParser = require('body-parser') const bodyParser = require('body-parser')
const cors = require('cors') const cors = require('cors')
const config = require('../config.json') const config = require('../config.json')
const https = require('https')
require('./signal') const WebSocketServer = require('ws').Server
const app = express() const app = express()
const {port} = config const server = https.createServer({
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
}, app)
const wss = new WebSocketServer({ server })
const {port, ws_port} = config
app.use(cors()) app.use(cors())
app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.urlencoded({ extended: false }))
@@ -14,6 +20,107 @@ app.use(bodyParser.json())
app.use(express.static('./client')) app.use(express.static('./client'))
app.listen(port, () => { server.listen(port, () => {
console.log(`Launching Lil'Streamy on ${port}`) console.log(`Launching Lil'Streamy on ${port}`)
}) })
var users = {}
wss.on('connection', function(connection) {
console.log('User connected')
connection.on('message', (message) => onMessage(connection, message))
connection.on('close', () => onClose(connection))
})
function sendTo(connection, message) {
connection.send(JSON.stringify(message))
}
function onClose(connection) {
if(connection.name) {
delete users[connection.name]
if(connection.otherName) {
console.log('Disconnecting from ', connection.otherName)
var conn = users[connection.otherName]
conn.otherName = null
if(conn != null) {
sendTo(conn, {
type: 'leave'
})
}
}
}
}
function onMessage(connection, message) {
var data
try {
data = JSON.parse(message);
} catch (e) {
console.log('Invalid JSON')
data = {}
}
switch (data.type) {
case 'login' :
console.log('User logged', data.name);
if(users[data.name]) {
sendTo(connection, {
type: 'login',
success: false
})
} else {
users[data.name] = connection
connection.name = data.name
sendTo(connection, {
type: 'login',
success: true
})
}
break
case 'leave' :
console.log('Disconnecting from', data.name)
var conn = users[data.name]
conn.otherName = null
//notify the other user so he can disconnect his peer connection
/*
if(conn != null) {
sendTo(conn, {
type: 'leave'
});
}*/
break;
case 'userlist' :
console.log('Send list to', data.name)
sendTo(connection, {
type: 'userlist',
list: users
});
break
default:
if (data.target){
var targetConnection = users[data.target];
if(targetConnection){
console.log('Forward message from ' + data.name + ' to ' + data.target + ' (' + data.type + ')')
sendTo(targetConnection, data)
}
} else {
sendTo(connection, {
type: 'error',
message: 'Command not found: ' + data.type
});
}
}
}