Как мне подключиться к MongoDB с помощью SSL в Scala? - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь установить ssl-соединение с экземпляром mongodb, который я запускаю в контейнере на своей машине и продолжаю работать,

nioEventLoopGroup-2-4, fatal error: 46: General SSLEngine problem
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Я создал самоподписанный .pem для mongo с,

openssl req -x509 -newkey rsa:4096 -keyout mongo.key -out mongo.crt -days 365 -nodes
cat mongo.key mongo.cert > mongo.pem

Переместил их в папку, подключил их в качестве тома связывания в моем контейнере и добавил

--sslMode requireSSL --sslPEMKeyFile /etc/boundfolder/mongo.pem

к запуску Монго.Я могу подключиться к этому с помощью клиента mongo.

Я настраиваю мой клиент mongo в scala следующим образом:

val hostConf = ClusterSettings.builder().hosts(List(new ServerAddress(hostName)).asJava).build()
val clientSettings = MongoClientSettings.builder()
    .streamFactoryFactory(NettyStreamFactoryFactory())
    .clusterSettings(hostConf)
val withTLS = clientSettings.sslSettings(
    SslSettings.builder()
        .enabled(true)
        .invalidHostNameAllowed(true)
        .build())
MongoClient(withTLS.build())

Наконец, я создал хранилище ключей с помощью

* 1016.*

и я запускаю приложение со следующими параметрами:

-Djavax.net.ssl.keyStore=/path/to/mongo.keystore -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.debug=SSL

Я почти уверен, что проблема в том, что или как, я добавляю самоподписанный сертификат в хранилище ключей.Спасибо за любую помощь, вы можете дать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...