Конфигурация сервера Neo4J позволяет настроить политику на стороне сервера для защиты подключений HTTPS и BOLT.
В моей установке я защитил подключение BOLT, настроив политику с открытым и закрытым ключом PEM и параметрами:
dbms.connector.bolt.enabled=true
dbms.connector.bolt.tls_level=REQUIRED
bolt.ssl_policy=my_policy
dbms.ssl.policy.my_policy..base_directory=...
...
Настройка работает с клиентом браузера.Когда я подключаюсь к серверу через HTTPS, я могу войти в систему с помощью команды «: server connect» и использовать браузер Neo4J с моим сервером.
Что я не могу сделать, так это выяснить, как другой клиент может подключиться к Neo4Jс безопасным протоколом BOLT.В частности, я попытался подключиться из cypher-shell и из Java-клиента (используя Java Driver v 1.6).Когда TLS для BOLT отключен, оба подключаются без помехи.Включение TLS приводит к ошибке bad_certificate у обоих клиентов.
Я попытался запустить и cypher-shell, и мой Java-клиент, передав свойства JVM, указывающие на мое хранилище доверия и хранилище ключей
(-Djavax.net.ssl.keyStore=...
-Djavax.net.ssl.keyStorePassword=...
-Djavax.net.ssl.trustStore=...
-Djavax.net.ssl.trustStorePassword=...)
Эти свойства имеютне влияет ни на клиента Neo4J.Я получаю исключение bad_certificate.
Я попытался включить отладку SSL (-Djavax.net.debug = ssl, рукопожатие).Вызов Java-клиента или оболочки cypher с параметрами хранилища ключей и доверенных сертификатов не влияет на выходные данные отладки SSL.
Как подключиться к серверу с поддержкой TLS для BOLT из оболочки шифра или Java-клиента?
Спасибо.