-
-
Notifications
You must be signed in to change notification settings - Fork 711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTPS connection not working #26
Comments
obs-websocket currently doesn't support TLS connections. This isn't planned for now but certainly will be at some point. |
Just a comment on this, if you attach a domain name to your github pages that doesn't support TLS then github will fall back to http. Otherwise it enforces the use of TLS with no way to disable it. |
Yeah, I know that but I didn't want to get a domian for this because obviously it costs money and I think that's not worth it at the moment, maybe in the future :) |
ngrok.io can help in the meantime. It can act as a proxy for non-secure traffic that can be secured. |
The quickest solution is to probably put an
Chrome may silently fail if the common name on the certificate does not match the DNS name you are connecting to. And before you think of using the IP rather than a dns name, some browsers implicitly reject the IP cert if it's not in both the commonName and subjectAltName because they didn't follow standards (cough, IE, cough). Basically, don't expose obs-websocket to the public unless you REALLY know what you are doing, and you are going to do it right. It's not for "your friend to control obs cuz it'd be cool". |
If this ever happens, it'll need either a way to plug in a certificate, or some way to tell the browser that a self-signed cert is acceptable. Easier is to set up a custom subdomain with GitHub Pages, which I've done for my websocket client. Don't need to buy an additional domain as long as you have a domain that you can create a CNAME under. (FWIW, it's a remote volume controller.) |
Agreed. Doesn't matter what domain it is either; $1 a year or less if you find a sale. |
You can use nginx as reverse-proxy that supports HTTPS |
I would also love this feature. Has there been plans on revisiting this request? |
+1 for SSL. |
any updates on this? |
Is this feature still on the list? |
+1 for SSL support Edit: I changed my mind, some documentation might be a better solution: #26 (comment) |
Needs SSL support for web integration. |
I don't think it's right for obs-websocket to try to support SSL, because it would require setting up a certificate and having the appropriate private key - which is going to have to be readable by the OBS process. Much better, IMO, to do this externally. Maybe what we need is a simple recipe (for each of several OSes) showing how to set up an encryption proxy? |
After testing some solutions, I have to agree with @Rosuav. It might be useful to add something like this to the Readme:
I submitted a PR to add WSS support to obs-websocket-js here: obs-websocket-community-projects/obs-websocket-js#201. It should be easy to add to obs-tablet-remote as well. Edit: it's already working in obs-tablet-remote, example URL: https://t2t2.github.io/obs-tablet-remote/#!auto&host=wss://NAME.pagekite.me/ |
That seems pretty simple. Have you checked that those two services work happily with websockets, and don't, for instance, disconnect idle connections after five seconds? |
Yes I did, I'm using it myself on 1h+ livestreams. Pagekite is open source so you can also run your own managed instance. |
Works perfectly! It wasn't working at first as I was adding port 4444 to the wss:// address, but works once I removed it. Thanks! |
For LAN usage, pagekite and (I think) ngrok are both massive overkill, and also they force traffic to go out over the internet (which opens up potential password attacks). To enable encrypted access but keep things local, I tried to get something really simple: https://github.com/Rosuav/obs-remote-volume/blob/master/proxy.py Would it be worth migrating that into this repo and providing it as a recommended way to encrypt the connection? |
Is there really a use-case for TLS encryption inside a LAN? To acquire a LetsEncrypt certificate you need a public-facing IP anyway (or use DNS-level authentication). I'd argue that Wireguard LAN setup would be an easier setup in such a case. |
The use-case is that you can't use https://t2t2.github.io/obs-tablet-remote/ with anything other than localhost unless you encrypt the websocket. Because according to browser manufacturers, it's better to encrypt nothing at all than to encrypt some of it without all of it. Even if the unencrypted part is on your own LAN. Thanks, browsers, brilliant job. |
You can enable mixed content in your browser (in Chrome even on a site-specific level), but yeah - it's not ideal. |
Closing since we have the tls tutorial in the docs. |
I don't know if it is the fault of the obs-websocket itself or the obs-websocket-js I'm using but I can't seem to get a working HTTPS connection (I need it because github.io pages are all HTTPS).
I tried to change the request from 'ws' to 'wss' but there is no respond.
The text was updated successfully, but these errors were encountered: