有没有办法只允许https而不是http来与Neo4j服务器进行通信?此外,Neo4j Shell的通信使用哪个频道,http或https?
答案 0 :(得分:1)
来自http://docs.neo4j.org/chunked/stable/security-server.html:
HTTPS支持 Neo4j服务器内置支持通过HTTPS进行SSL加密通信。服务器第一次启动时,它会自动生成自签名SSL证书和私钥。由于证书是自签名的,因此依赖于生产使用是不安全的,相反,您应该为服务器提供自己的密钥和证书。
要提供您自己的密钥和证书,请替换生成的密钥和证书,或更改neo4j-server.properties文件以设置证书和密钥的位置:
# Certificate location (auto generated if the file does not exist)
org.neo4j.server.webserver.https.cert.location=ssl/snakeoil.cert
# Private key location (auto generated if the file does not exist)
org.neo4j.server.webserver.https.key.location=ssl/snakeoil.key
Note that the key should be unencrypted. Make sure you set correct permissions on the private key, so that only the Neo4j server user can read/write it.
Neo4j还支持链式SSL证书。这需要将PEM格式的所有证书合并到一个文件中,并且私钥需要采用DER格式。
您可以在同一配置文件中设置HTTPS连接器应绑定的端口,也可以关闭HTTPS:
# Turn https-support on/off
org.neo4j.server.webserver.https.enabled=true
# https port (for all data, administrative, and UI access)
org.neo4j.server.webserver.https.port=443
关于您的第二个问题:Neo4j Shell的通信使用哪个频道,http或https?默认频道为http。
答案 1 :(得分:1)
这是来自Neo4j文档:
<强> HTTPS support 强>
Neo4j服务器内置支持通过HTTPS进行SSL加密通信。服务器第一次启动时,它会自动生成自签名SSL证书和私钥。由于证书是自签名的,因此依赖于生产使用是不安全的,相反,您应该为服务器提供自己的密钥和证书。
要提供您自己的密钥和证书,请替换生成的密钥和证书,或更改neo4j-server.properties文件以设置证书和密钥的位置:
# Certificate location (auto generated if the file does not exist)
org.neo4j.server.webserver.https.cert.location=ssl/snakeoil.cert
# Private key location (auto generated if the file does not exist)
org.neo4j.server.webserver.https.key.location=ssl/snakeoil.key
请注意,密钥应该是未加密的。确保您对私钥设置了正确的权限,以便只有Neo4j服务器用户可以读/写它。
Neo4j还支持链式SSL证书。这需要将PEM格式的所有证书合并到一个文件中,并且私钥需要采用DER格式。
您可以在同一配置文件中设置HTTPS连接器应绑定的端口,也可以关闭HTTPS:
# Turn https-support on/off
org.neo4j.server.webserver.https.enabled=true
# https port (for all data, administrative, and UI access)
org.neo4j.server.webserver.https.port=443