TL;DR: A website is served over HTTPS and needs to access a WebSockets server over an unencrypted channel (ws:// url). The browser doesn't like this.
Encrypting the websocket is possible, but inconvenient - there is no trusted authority which could sign the certificate and thus it will be needed to manually install it for every client. I'd like to leave that as the last resort.
The website must be served over HTTPS and cannot be downgraded to HTTP.
Is there any other way to bypass this restriction? I tried Content-Security-Policy, but it didn't work.