Nie mogę się połączyć z MongoDB

0

Stworzyłem sobie bazę na stronie cloud mongoDB.
W aplikacji spring bootowej w application properties dodałem

spring.data.mongodb.uri=mongodb+srv://user:[email protected]/courses?retryWrites=true&w=majority

(w miejsce user i passowrd daje prawidłowe dane).
Przy starcie aplikacji dostaje błąd

com.mongodb.MongoSocketWriteException: Exception sending message

at com.mongodb.internal.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:551) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:433) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessage(InternalStreamConnection.java:273) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:257) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:105) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:62) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:129) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.11.2.jar:na]

at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]

Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 52.59.55.7 found

at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.8.0_51]

at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[na:1.8.0_51]

at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) ~[na:1.8.0_51]

at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) ~[na:1.8.0_51]

at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1497) ~[na:1.8.0_51]

at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) ~[na:1.8.0_51]

at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[na:1.8.0_51]

at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[na:1.8.0_51]

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[na:1.8.0_51]

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[na:1.8.0_51]

at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:747) ~[na:1.8.0_51]

at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123) ~[na:1.8.0_51]

at com.mongodb.internal.connection.SocketStream.write(SocketStream.java:99) ~[mongodb-driver-core-3.11.2.jar:na]

at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:430) ~[mongodb-driver-core-3.11.2.jar:na]

... 9 common frames omitted

Caused by: java.security.cert.CertificateException: No subject alternative names matching IP address 52.59.55.7 found

at sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:167) ~[na:1.8.0_51]

at sun.security.util.HostnameChecker.match(HostnameChecker.java:93) ~[na:1.8.0_51]

at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:455) ~[na:1.8.0_51]

at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:436) ~[na:1.8.0_51]

at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:200) ~[na:1.8.0_51]

at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[na:1.8.0_51]

at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1479) ~[na:1.8.0_51]

... 18 common frames omitted

Nie wiem skąd jest ten IP ze stacka IP address 52.59.55.7. NIe jest mój. Na stronie clound mongoDB dodałem swój IP oraz 0.0.0.0/0 co powinno skutkować przepuszczeniem każdego IP.
Wiecie czym może być spowodowany powyższy błąd?

1
  1. Ten IP to ec2-52-59-55-7.eu-central-1.compute.amazonaws.com. więc jakieś EC2. Bardzo możliwe że tam stoi to cloud mongo ;)
  2. Sam błąd sugeruje problem na poziomie SSLa, może brak certyfikatu albo niepasujaca domena?

edit: google sugeruje że to jakis błąd występujący na starej wersji JDK bo connector próbuje się łączyć po IPku zamiast po domenie. Czym ty to odpalasz i czemu jest starsze od ciebie? ;)

0

Tak też znalazłem informację, że to może być przez starsze jdk. Zmieniłem z 1.8 na open jdk 11 i wygląda na to, że działa. Aplikacja wstaje i mogę strzelać do endpointów. Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1