В 4.0 мне удалось заставить ssl работать со следующими настройками:
$ docker run -d -p 7473:7473 -p 7474:7474 -p 7687:7687 --rm \
-v /opt/neo4j/certs/https:/var/lib/neo4j/certificates/https \
-e NEO4J_dbms_ssl_policy_https_enabled=true \
-e NEO4J_dbms_ssl_policy_https_base__directory=certificates/https \
-e NEO4J_dbms_ssl_policy_https_private__key=private.key \
-e NEO4J_dbms_ssl_policy_https_public__certificate=public.crt \
-e NEO4J_dbms_connector_https_enabled=true \
neo4j:4.0
Просто монтировать /ssl
, как указано в документации по neo4j docker, у меня не работает. Я создал проблему для этого в репозитории github: https://github.com/neo4j/docker-neo4j/issues/225 https://neo4j.com/docs/operations-manual/3.5/docker/security/
Кроме того, указанные выше настройки не работают для 3.5, так как некоторые переменные имеют изменилось. Я отредактирую свой пост, если смогу заставить его работать на 3.5. https://neo4j.com/docs/operations-manual/3.5/security/ssl-framework/
Это была моя установка:
$ pwd
/opt/neo4j/certs/https
$ ls
private.key public.crt
Для включения ssl на болте:
docker run -d -p 7473:7473 -p 7474:7474 -p 7687:7687 \
-e NEO4J_dbms_ssl_policy_bolt_enabled=true \
-e NEO4J_dbms_ssl_policy_bolt_base__directory=certificates \
-e NEO4J_dbms_connector_bolt_tls__level=OPTIONAL \
-e NEO4J_dbms_connector_bolt_advertised__address=domain.with.valid.cert.com \
-e NEO4J_dbms_ssl_policy_bolt_client__auth=NONE \
neo4j:4.0
bolt_advertised__address
, кажется, необходимо, если вы хотите подключиться из браузера. Python Драйвер может нормально подключиться и без него.