特定密码的 TLS/SSL 配置
根据文档:dbms.ssl.policy.<policyname>.ciphers
默认设置为 Java 平台的默认允许密码套件,也可以明确设置为任何特定的密码(用逗号分隔),以进一步限制允许的密码列表,从而使我们能够强制使用特定的单一强密码(如果需要),并消除关于协商和选择哪个密码的任何疑问。
此外,您还可以选择或额外地通过参考此处提到的说明来禁用密码:https://lightbend.github.io/ssl-config/CipherSuites.html 例如,您可以在 neo4j.conf 中添加以下内容:
dbms.jvm.additional=-Djava.security.properties=<$NEO4J_HOME>/neo4j-enterprise-3.5.x/conf/disabledAlgorithms.properties
文件内容如下(示例):
# disabledAlgorithms.properties
jdk.tls.disabledAlgorithms=EC keySize < 160, RSA keySize < 2048, DSA keySize < 2048
jdk.certpath.disabledAlgorithms=MD2, MD4, MD5, EC keySize < 160, RSA keySize < 2048, DSA keySize < 2048
如果出现任何问题,要进行进一步调试,您可以使用以下步骤:
-
您可以通过在 neo4j.conf 中添加以下设置来评估客户端与 neo4j 之间的握手(并重启):
dbms.jvm.additional=-Djavax.net.debug=ssl:handshake
-
运行以下命令以查看可用密码列表(示例):
$ nmap --script ssl-enum-ciphers -p 7473 localhost Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-17 17:54 PDT Nmap scan report for localhost (127.0.0.1) Host is up (0.00033s latency). Other addresses for localhost (not scanned): ::1 PORT STATE SERVICE 7473/tcp open rise | ssl-enum-ciphers: | TLSv1.2: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A | TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A | compressors: | NULL | cipher preference: server |_ least strength: A Nmap done: 1 IP address (1 host up) scanned in 0.66 seconds
-
以及以下命令:
$ openssl s_client -connect <server-name-ip>:7473
此页面有帮助吗?