Explanation of error "WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver

In Neo4j 3.0 and its implementation of the Bolt protocol, if a remote browser connects to Neo4j (http://<remote_neo4j_host>:7474) and attempts to authenticate, the following error may be encountered:

[red]#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#

This error can be resolved by editing the file $NEO4J_HOME/conf/neo4j.conf and uncommenting:

# To have Bolt accept non-local connections, uncomment this line:
dbms.connector.bolt.address=0.0.0.0:7687

I made it work. Below is my case and hopefully it is helpful.

In my case, I deployed neo4j on a remote Linux server and tried to connect to it remotely. In addition to editing neo4j.conf, I also established two SSH tunnels so that 7474 and 7687 port on the server is accessible remotely.

For neo4j web browser: ssh -L 7474:localhost:7474 username@server_ip

For bolt: ssh -L 7867:localhost:7867 username@server_ip

I had installed my certificate trust via the web browser open through port 7473, but still couldn't log in.
But, simply opening a separate page to the the bolt {neo4jAppHost}:{7687} directly immediately fixed my connection, and I was able to log in.