plesk docker 中的 Neo4j(3.4.17、3.5.13、4.0.0)不使用 /ssl 中提供的 SSL 证书,但会尝试删除它们并进行自己的自签名
Neo4j (3.4.17, 3.5.13, 4.0.0) in docker on plesk doesn't use provided SSL certificates in /ssl but tries to delete them and make its own self-signed
此配置在某些时候对我有用,但由于未启用自动续订,在短暂 VPS 暂停后就停止了。
根据文档,我在文件夹中提供了 neo4j.cert 和 neo4j.key,然后我将其装载到 /ssl 的容器中。
不幸的是,neo4j 将卡在 'cleaning up self-generated ...' 并抛出 'permission denied' 除非我对该文件夹设置 775 权限以便它也可以写入和执行(组策略)。
如果我确实设置为 775,但它没有使用正确提供的签名证书,而是删除它们并制作自己的自签名证书。
在 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
按照 neo4j docker 文档中的说明简单地安装 /ssl
对我不起作用。
我在他们的 github 回购中为此创建了一个问题:https://github.com/neo4j/docker-neo4j/issues/225
https://neo4j.com/docs/operations-manual/3.5/docker/security/
另外,上面的设置不适用于 3.5,因为一些变量已经改变。如果我可以让它在 3.5 上工作,我将编辑我的 post。
https://neo4j.com/docs/operations-manual/3.5/security/ssl-framework/
这是我的设置:
$ pwd
/opt/neo4j/certs/https
$ ls
private.key public.crt
为了在 bolt 上启用 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 没有它,驱动程序也可以正常连接。
此配置在某些时候对我有用,但由于未启用自动续订,在短暂 VPS 暂停后就停止了。
根据文档,我在文件夹中提供了 neo4j.cert 和 neo4j.key,然后我将其装载到 /ssl 的容器中。
不幸的是,neo4j 将卡在 'cleaning up self-generated ...' 并抛出 'permission denied' 除非我对该文件夹设置 775 权限以便它也可以写入和执行(组策略)。
如果我确实设置为 775,但它没有使用正确提供的签名证书,而是删除它们并制作自己的自签名证书。
在 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
按照 neo4j docker 文档中的说明简单地安装 /ssl
对我不起作用。
我在他们的 github 回购中为此创建了一个问题:https://github.com/neo4j/docker-neo4j/issues/225
https://neo4j.com/docs/operations-manual/3.5/docker/security/
另外,上面的设置不适用于 3.5,因为一些变量已经改变。如果我可以让它在 3.5 上工作,我将编辑我的 post。 https://neo4j.com/docs/operations-manual/3.5/security/ssl-framework/
这是我的设置:
$ pwd
/opt/neo4j/certs/https
$ ls
private.key public.crt
为了在 bolt 上启用 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 没有它,驱动程序也可以正常连接。