特定密码的 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
此页面有帮助吗?