I have the following part of Docker file
FROM bellsoft/liberica-openjre-alpine:21.0.2 as runner
WORKDIR /app
EXPOSE 8080
ADD https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem $JAVA_HOME/jre/lib/security/cacerts/global-bundle.crt
RUN cd $JAVA_HOME/jre/lib/security/cacerts
&& keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias amazonrds -file global-bundle.crt
ADD https://example.com/myApp.jar ./myApp.jar
ENTRYPOINT ["java", "-jar", "./myApp.jar"]
In the logs, I can see the following:
Certificate was added to keystore
However, when I run the app I get the following:
2024-06-28T17:03:28.926Z 2024-06-28T17:03:28.926Z INFO 1 --- [myApp] [ main] org.mongodb.driver.client : You appear to be connected to a DocumentDB cluster. For more information regarding feature compatibility and support please visit https://www.mongodb.com/supportability/documentdb
2024-06-28T17:03:28.992Z 2024-06-28T17:03:28.992Z INFO 1 --- [myApp] [ main] org.mongodb.driver.client : MongoClient with metadata {"driver": {"name": "mongo-java-driver|sync", "version": "5.0.1"}, "os": {"type": "Linux", "name": "Linux", "architecture": "amd64", "version": "4.14.322-244.536.amzn2.x86_64"}, "platform": "Java/BellSoft/21+37-LTS", "env": {"container": {"runtime": "docker"}}} created with settings MongoClientSettings{readPreference=primary, writeConcern=WriteConcern{w=null, wTimeout=null ms, journal=null}, retryWrites=false, retryReads=true, readConcern=ReadConcern{level=null}, credential=MongoCredential{mechanism=null, userName='latochp', source='admin', password=<hidden>, mechanismProperties=<hidden>}, transportSettings=null, commandListeners=[], codecRegistry=ProvidersCodecRegistry{codecProviders=[ValueCodecProvider{}, BsonValueCodecProvider{}, DBRefCodecProvider{}, DBObjectCodecProvider{}, DocumentCodecProvider{}, CollectionCodecProvider{}, IterableCodecProvider{}, MapCodecProvider{}, GeoJsonCodecProvider{}, GridFSFileCodecProvider{}, Jsr310CodecProvider{}, JsonObjectCodecProvider{}, BsonCodecProvider{}, EnumCodecProvider{}, com.mongodb.client.model.mql.ExpressionCodecProvider@6cc90398, com.mongodb.Jep395RecordCodecProvider@6b6fd0, com.mongodb.KotlinCodecProvider@3d718248]}, loggerSettings=LoggerSettings{maxDocumentLength=1000}, clusterSettings={hosts=[example.us-east-1.docdb.amazonaws.com:27017], srvServiceName=mongodb, mode=SINGLE, requiredClusterType=UNKNOWN, requiredReplicaSetName='null', serverSelector='null', clusterListeners='[]', serverSelectionTimeout='30000 ms', localThreshold='15 ms'}, socketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=0, receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, username=null, password=null}}, heartbeatSocketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=10000, receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, username=null, password=null}}, connectionPoolSettings=ConnectionPoolSettings{maxSize=100, minSize=0, maxWaitTimeMS=120000, maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=0, maintenanceInitialDelayMS=0, maintenanceFrequencyMS=60000, connectionPoolListeners=[], maxConnecting=2}, serverSettings=ServerSettings{heartbeatFrequencyMS=10000, minHeartbeatFrequencyMS=500, serverListeners='[]', serverMonitorListeners='[]'}, sslSettings=SslSettings{enabled=true, invalidHostNameAllowed=false, context=null}, applicationName='null', compressorList=[], uuidRepresentation=UNSPECIFIED, serverApi=null, autoEncryptionSettings=null, dnsClient=null, inetAddressResolver=null, contextProvider=null}
2024-06-28T17:03:29.269Z
2024-06-28T17:03:29.264Z INFO 1 --- [myApp] [onaws.com:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server example.us-east-1.docdb.amazonaws.com:27017
2024-06-28T17:03:29.269Z com.mongodb.MongoSocketWriteException: Exception sending message
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:691) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:564) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessage(InternalStreamConnection.java:396) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:346) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:92) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:48) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:130) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnectionInitializer.startHandshake(InternalStreamConnectionInitializer.java:78) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:203) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:193) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:153) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.SocketStream.write(SocketStream.java:165) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z at com.mongodb.internal.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:561) ~[mongodb-driver-core-5.0.1.jar!/:na]
2024-06-28T17:03:29.269Z ... 10 common frames omitted
2024-06-28T17:03:29.269Z Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2024-06-28T17:03:29.269Z at java.base/sun.security.validator.PKIXValidator.doBuild(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.validator.Validator.validate(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z ... 25 common frames omitted
2024-06-28T17:03:29.269Z Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2024-06-28T17:03:29.269Z at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z at java.base/java.security.cert.CertPathBuilder.build(Unknown Source) ~[na:na]
2024-06-28T17:03:29.269Z ... 30 common frames omitted