Hi, my company just signed up for Neo4J Enterprise and I'm hitting roadblocks while configuring TLS for Bolt and enabling HTTPS. I'm currently running Docker using neo4j:enterprise
(Neo4j 4.3.5 w/ JVM - Version:11.0.12
).
Everything works fine if I do not try to enable TLS for bolt or HTTPS. However, when following the Ops Guide for enabling those features, Neo4j fails on startup. The error for the stack trace is very long and I have attached it as a file to prevent it from clobbering the post:
neo4j_stack_trace.txt (59.2 KB)
However, this particular line leads me to believe the error has to do with Neo4J not being able to find an appropriate JAR for netty:
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.bolt.BoltServer@365e65bb' failed to initialize. Please see the attached cause exception "Failed to load any of the given libraries: [netty_tcnative_linux_x86_64, netty_tcnative_linux_x86_64_fedora, netty_tcnative_x86_64, netty_tcnative]"
Here is my docker-compose.yml
file.
version: "3.8"
services:
neo4j:
image: "neo4j:enterprise"
container_name: "neo4j"
environment:
NEO4J_ACCEPT_LICENSE_AGREEMENT: "yes"
NEO4J_AUTH: "neo4j/test"
NEO4J_dbms_ssl_policy_bolt_enabled: "true"
NEO4J_dbms_ssl_policy_bolt_base__directory: "/certificates/bolt"
NEO4J_dbms_ssl_policy_bolt_private__key: "private.key"
NEO4J_dbms_ssl_policy_bolt_public__certificate: "public.crt"
NEO4J_dbms_ssl_policy_https_base__directory: "/certificates/https"
NEO4J_dbms_ssl_policy_https_private__key: "private.key"
NEO4J_dbms_ssl_policy_https_public__certificate: "public.crt"
NEO4J_dbms_ssl_policy_https_enabled: "true"
NEO4J_dbms_connector_http_enabled: "true"
NEO4J_dbms_connector_https_enabled: "true"
NEO4J_dbms_connector_bolt_tls__level: "REQUIRED"
NEO4J_dbms_netty_ssl_provider: "OPENSSL"
ports:
- "7473:7473"
- "7474:7474"
- "7687:7687"
expose:
- 7473
- 7474
- 7687
volumes:
- ${HOME}/neo4j/data:/data
- ${HOME}/neo4j/plugins:/plugins
- ${HOME}/neo4j/conf:/conf
- ${HOME}/neo4j/logs:/logs
- ${HOME}/neo4j/certificates:/certificates
Additionally here is my neo4j
home directory
drwxr-xr-x certificates
drwxr-xr-x conf
drwxr-xr-x data
drwx------ import
drwxr-xr-x logs
drwxrwxrwx plugins
I placed a copy of netty-tcnative-2.0.43.Final-linux-x86_64.jar
in neo4j/plugins
. However, to be honest, I'm not really sure how one would decide which version to use for a specific version of Neo4J -- the documentation appears silent on this issue. I found a few related posts around the internet, but they all seem to lead to unresolved threads or github issues that are still open. So, I apologize if this has been adequately addressed elsewhere.
I appreciate any pointers or suggestions on how to resolve this.
Thanks!