Neo4j (3.4.17, 3.5.13, 4.0.0) в docker на plesk не использует предоставленные SSL-сертификаты в / ssl, но пытается удалить их и сделать самозаверяющим - PullRequest
1 голос
/ 09 января 2020

Эта конфигурация работала для меня в некоторый момент, но просто остановилась после краткого приостановления VPS из-за отсутствия автоматического обновления c.

Согласно документации, я предоставляю neo4j.cert и neo4j.key в папке, которую затем монтирую в контейнере для / ssl.

К сожалению, neo4j застрянет при «очистке самогенерируемого ...» и выбросит «разрешение запрещено», если я не установлю 775 разрешений для этой папки, чтобы она также могла писать и выполнять (групповая политика) ,

Если я установил 775, все работает, но он не использует должным образом предоставленные подписанные сертификаты, вместо этого он просто удаляет их и создает собственный самозаверяющий сертификат.

1 Ответ

1 голос
/ 26 января 2020

В 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 Драйвер может нормально подключиться и без него.

...