I am running Neo4J in Docker behind Traefik. The web interface (7474) is exposed on https, which works as expected.
Through the web-interface, I attempt to connect to bolt://localhost:7687, which I would expect to work, after all it's running in that same container. Instead I receive the message:
"ServiceUnavailable: WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver. Please use your browsers development console to determine the root cause of the failure. Common reasons include the database being unavailable, using the wrong connection URL or temporary network problems. If you have enabled encryption, ensure your browser is configured to trust the certificate Neo4j is configured to use. WebSocket readyState is: 3"
The reverse proxy uses an internal certificate signed by our corporate CA. The Neo4J container has the root certificate available. The client connecting also has the root certificate available.
When attempting to connect to localhost:7687 in the container itself, it works as expected; so does Cypher shell.
There were also some posts on GitHub regarding the Java version which could cause these problems - I have tried with Oracle JDK 8, OpenJDK 8 (HotSpot & J9).
Browser also seems unrelated - the described issue reproduces with FF, Chrome & Safari.