简体   繁体   中英

Issue while setting up tls/ssl for mongo db connection in a spring boot application

I am trying to setup mongodb connection settings for a spring boot application which needs ssl settings enabled and a.pem file. My application.yml file looks like

 spring:
      data:
        mongodb:
          uri: mongodb://user:Pass@host:37017/DEV?authSource=admin&tls=true&tlsCAFile=path to .pem
    file      
          database: DEV

I am using spring mongodb-driver-core of 4.6.1 version.

But I get the following error

com.mongodb.MongoSocketWriteException: Exception sending message
    at com.mongodb.internal.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:684)
    at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:555)
    at com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessage(InternalStreamConnection.java:381)
    at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:329)
    at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:101)
    at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:45)
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:131)
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.startHandshake(InternalStreamConnectionInitializer.java:73)
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:182)
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:193)
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:353)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:296)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:291)
    at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)
    at java.base/sun.security.ssl.CertificateStatus$CertificateStatusConsumer.consume(CertificateStatus.java:295)
    at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)

Thankyou.

MongoDB Java Client requires the certificate be loaded in the JVM keystore.

https://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/ssl/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM