Я пытаюсь установить 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
Я почти уверен, что проблема в том, что или как, я добавляю самоподписанный сертификат в хранилище ключей.Спасибо за любую помощь, вы можете дать.