From 2bb5313bddf7d853eef134e2b9126cc8054eb75e Mon Sep 17 00:00:00 2001 From: itsmevichu Date: Fri, 13 Feb 2026 08:56:38 +0530 Subject: [PATCH] Add missing SSL support for Docker Compose See gh-49210 Signed-off-by: itsmevichu --- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 18 ++++-- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ .../cassandra/cassandra-ssl-compose.yaml | 34 +++++++++++ .../connection/cassandra/client-keystore.p12 | Bin 0 -> 2944 bytes .../cassandra/client-truststore.p12 | Bin 0 -> 1782 bytes .../connection/cassandra/server-keystore.p12 | Bin 0 -> 2928 bytes .../cassandra/server-truststore.p12 | Bin 0 -> 1782 bytes .../service/connection/elasticsearch/ca.crt | 32 +++++++++++ .../connection/elasticsearch/client.crt | 26 +++++++++ .../connection/elasticsearch/client.key | 28 +++++++++ .../elasticsearch-ssl-compose.yaml | 32 +++++++++++ .../connection/elasticsearch/server.crt | 26 +++++++++ .../connection/elasticsearch/server.key | 28 +++++++++ .../compose/service/connection/mongo/ca.crt | 32 +++++++++++ .../service/connection/mongo/client.crt | 26 +++++++++ .../service/connection/mongo/client.key | 28 +++++++++ .../connection/mongo/mongo-ssl-compose.yaml | 28 +++++++++ .../service/connection/mongo/mongo.pem | 54 ++++++++++++++++++ .../compose/service/connection/rabbit/ca.crt | 32 +++++++++++ .../service/connection/rabbit/client.crt | 26 +++++++++ .../service/connection/rabbit/client.key | 28 +++++++++ .../connection/rabbit/rabbit-ssl-compose.yaml | 26 +++++++++ .../service/connection/rabbit/rabbitmq.conf | 8 +++ .../service/connection/rabbit/server.crt | 26 +++++++++ .../service/connection/rabbit/server.key | 28 +++++++++ ...DockerComposeConnectionDetailsFactory.java | 9 +++ ...DockerComposeConnectionDetailsFactory.java | 12 +++- ...DockerComposeConnectionDetailsFactory.java | 9 +++ ...DockerComposeConnectionDetailsFactory.java | 9 +++ 31 files changed, 630 insertions(+), 5 deletions(-) create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-ssl-compose.yaml create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/client-keystore.p12 create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/client-truststore.p12 create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-keystore.p12 create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-truststore.p12 create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/ca.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/client.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/client.key create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/elasticsearch-ssl-compose.yaml create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/server.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/server.key create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/ca.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/client.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/client.key create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo-ssl-compose.yaml create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo.pem create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/ca.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.key create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-ssl-compose.yaml create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbitmq.conf create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.crt create mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.key diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java index dc20d1012a9..2d3aa350566 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import java.util.List; import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails.Node; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.testsupport.container.TestImage; import static org.assertj.core.api.Assertions.assertThat; @@ -35,6 +36,15 @@ class CassandraDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "cassandra-compose.yaml", image = TestImage.CASSANDRA) void runCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) { assertConnectionDetails(connectionDetails); + assertThat(connectionDetails.getSslBundle()).isNull(); + } + + @DockerComposeTest(composeFile = "cassandra-ssl-compose.yaml", image = TestImage.CASSANDRA, additionalResources = { + "server-keystore.p12", "server-truststore.p12", "client-keystore.p12", "client-truststore.p12" }) + void runWithSslCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + SslBundle sslBundle = connectionDetails.getSslBundle(); + assertThat(sslBundle).isNotNull(); } @DockerComposeTest(composeFile = "cassandra-bitnami-compose.yaml", image = TestImage.BITNAMI_CASSANDRA) diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java index 8892ac8c8f7..0d92b1b544f 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnect import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node; import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node.Protocol; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.testsupport.container.TestImage; import static org.assertj.core.api.Assertions.assertThat; @@ -36,15 +37,24 @@ class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "elasticsearch-compose.yaml", image = TestImage.ELASTICSEARCH_8) void runCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { - assertConnectionDetails(connectionDetails); + assertConnectionDetails(connectionDetails, Protocol.HTTP); + assertThat(connectionDetails.getSslBundle()).isNull(); + } + + @DockerComposeTest(composeFile = "elasticsearch-ssl-compose.yaml", image = TestImage.ELASTICSEARCH_8, + additionalResources = { "ca.crt", "server.crt", "server.key", "client.crt", "client.key" }) + void runWithSslCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails, Protocol.HTTPS); + SslBundle sslBundle = connectionDetails.getSslBundle(); + assertThat(sslBundle).isNotNull(); } @DockerComposeTest(composeFile = "elasticsearch-bitnami-compose.yaml", image = TestImage.BITNAMI_ELASTICSEARCH) void runWithBitnamiImageCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { - assertConnectionDetails(connectionDetails); + assertConnectionDetails(connectionDetails, Protocol.HTTP); } - private void assertConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { + private void assertConnectionDetails(ElasticsearchConnectionDetails connectionDetails, Protocol expectedProtocol) { assertThat(connectionDetails.getUsername()).isEqualTo("elastic"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getPathPrefix()).isNull(); @@ -52,7 +62,7 @@ class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests { Node node = connectionDetails.getNodes().get(0); assertThat(node.hostname()).isNotNull(); assertThat(node.port()).isGreaterThan(0); - assertThat(node.protocol()).isEqualTo(Protocol.HTTP); + assertThat(node.protocol()).isEqualTo(expectedProtocol); assertThat(node.username()).isEqualTo("elastic"); assertThat(node.password()).isEqualTo("secret"); } diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java index 1bf53e3915f..ea16fc234ff 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.condition.OS; import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.testsupport.container.TestImage; import org.springframework.boot.testsupport.junit.DisabledOnOs; @@ -39,6 +40,15 @@ class MongoDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mongo-compose.yaml", image = TestImage.MONGODB) void runCreatesConnectionDetails(MongoConnectionDetails connectionDetails) { assertConnectionDetailsWithDatabase(connectionDetails, "mydatabase"); + assertThat(connectionDetails.getSslBundle()).isNull(); + } + + @DockerComposeTest(composeFile = "mongo-ssl-compose.yaml", image = TestImage.MONGODB, + additionalResources = { "ca.crt", "client.crt", "client.key", "mongo.pem" }) + void runWithSslCreatesConnectionDetails(MongoConnectionDetails connectionDetails) { + assertConnectionDetailsWithDatabase(connectionDetails, "mydatabase"); + SslBundle sslBundle = connectionDetails.getSslBundle(); + assertThat(sslBundle).isNotNull(); } @DisabledOnOs(os = { OS.LINUX, OS.MAC }, architecture = "aarch64", disabledReason = "The image has no ARM support") diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java index 45026f8c950..8706cecd3d7 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -19,6 +19,7 @@ package org.springframework.boot.docker.compose.service.connection.rabbit; import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails.Address; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.testsupport.container.TestImage; import static org.assertj.core.api.Assertions.assertThat; @@ -36,6 +37,15 @@ class RabbitDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "rabbit-compose.yaml", image = TestImage.RABBITMQ) void runCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) { assertConnectionDetails(connectionDetails); + assertThat(connectionDetails.getSslBundle()).isNull(); + } + + @DockerComposeTest(composeFile = "rabbit-ssl-compose.yaml", image = TestImage.RABBITMQ, + additionalResources = { "ca.crt", "server.crt", "server.key", "client.crt", "client.key", "rabbitmq.conf" }) + void runWithSslCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + SslBundle sslBundle = connectionDetails.getSslBundle(); + assertThat(sslBundle).isNotNull(); } @DockerComposeTest(composeFile = "rabbit-bitnami-compose.yaml", image = TestImage.BITNAMI_RABBITMQ) diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-ssl-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-ssl-compose.yaml new file mode 100644 index 00000000000..cdc7008dd93 --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-ssl-compose.yaml @@ -0,0 +1,34 @@ +services: + cassandra: + image: '{imageName}' + ports: + - '9042' + environment: + - 'CASSANDRA_SNITCH=GossipingPropertyFileSnitch' + - 'JVM_OPTS=-Dcassandra.skip_wait_for_gossip_to_settle=0 -Dcassandra.initial_token=0' + - 'HEAP_NEWSIZE=128M' + - 'MAX_HEAP_SIZE=1024M' + - 'CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch' + - 'CASSANDRA_DC=testdc1' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_ENABLED: true' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_REQUIRE_CLIENT_AUTH: true' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_KEYSTORE: /run/secrets/ssl/server-keystore.p12' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_KEYSTORE_PASSWORD: password' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_TRUSTSTORE: /run/secrets/server-truststore.p12' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_TRUSTSTORE_PASSWORD: password' + - 'CASSANDRA_CLIENT_ENCRYPTION_OPTIONS_STORE_TYPE: PKCS12' + labels: + - 'org.springframework.boot.sslbundle.jks.keystore.type:PKCS12' + - 'org.springframework.boot.sslbundle.jks.keystore.location=client-keystore.p12' + - 'org.springframework.boot.sslbundle.jks.keystore.password=password' + - 'org.springframework.boot.sslbundle.jks.truststore.type=PKCS12' + - 'org.springframework.boot.sslbundle.jks.truststore.location=client-truststore.p12' + - 'org.springframework.boot.sslbundle.jks.truststore.password=password' + secrets: + - server-keystore + - server-truststore +secrets: + server-keystore: + file: ./server-keystore.p12 + server-truststore: + file: ./server-truststore.p12 \ No newline at end of file diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/client-keystore.p12 b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/client-keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..dc56224cf6ddfcd6c0fcc5429c31a2b94958b5a4 GIT binary patch literal 2944 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 YOw>};sfqHceKh$sLByA7y#fL!5J@#n5dZ)H literal 0 HcmV?d00001 diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-keystore.p12 b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..46a94d956b6371a26967e45f411b2bdb51f8810c GIT binary patch literal 2928 zcmai$XE+-Q7snGxh!tw2Vy{?56OElB)T~|C-jo_`6|Ge(Dz8#oZEBUOQ8h!=Dr%&v z)Tr6oTkG0{*L~jiX+Pc%=bY#Ke;>}b-*ZrST2Bff2!*HRr=%7mXb}$RfmFaeJS{UA zPs?x-)1vSY_dkd-4-c`rh|DN}fQw=HhX7G_zZVES${2N-;T&)hxt+26HU+572lMLGj8wYIFj~e zCT_I?(L)xAGWQ&@9&c)7MpxTKMI%BSa&=Bj}x%AfRWuVZgy zbh{a6A)S8S>&nKAl2B#&)VAkL{2RfNbHcm9Vxq}yS6!3Z_6e6GE%l9;Ki&K3&Nf7x zbSk2EU%pnCXJZ*M&CrH8{u0~R&i1P%ew$s-><)j|dQp7X%sHLF2uRt)zALi>O-#Ha z)cUOEW#6pJPRVO$|4xLiK9svKFTs7uQIwiJRkr85p;V%G!q*5_Np9!Hr1$x`mJl0h zD6!?W!yw5XgH$NdsyBYVYrA=gWcaV`$FGbshm6m=i65P!3dCIJ z?k=`i(tAqBMQ{mF6BnCW0jugm()d^-sk5gNilCwB<6z1a5m{By z-359TtOUXE-UgW60oj0@KcX`=PB zkRJn$+^g`nB0~*IW#Hug;``y`@1k|8fS0)w&%SvD=*YZEJ*tNenJg4Yp;S~fw|f1nQcJM zK)w5q;Vx%&M@Yn;ksn`?zs0N7dGAT*T&lrOu(B{rj4h`Yy_oNRDxH)wyl14zi^eQC z@mnqvqd{pxk@Bt+#)i>Mm4i`LLR*OitNm&yv3_b~@dD(ymU8Hf7D)4R$_Ajps2Tb5 zuy*g}vls599y5cw10O{vs(~kKyJj$7AAuV$CE7JTarxkS@w}7|TeU#}TXEnjYQune zT&svktZi)VBE3tq=IS7=^U(GdDL<6dY694;&K}XM_j3xTk^`AL+~59^{B>`23k|ib z`_9fKooVLAy@vG7FaC68dWt{WER6Hmx;N($BfHLg1}r~aCR9XE4?H(nuo8nD{MH}V zvDHj_279Cxg!38R82~7AjefyOP4VVTXTUi?xR zH~x7YI?sotU-Zk@e5)AGVj`QQ@vcdXFPk62>ZD@OQH2z*MFwJ4hBzZuA}N@iyU#xC zqWoXDWJ10VyL(5ViZ&~A?+-bwI*c}z-ZbsOuzpT$(PokYjT*~(5ICsdve{!zZ7&kl zj&|O8orezw%05W>F0SHKT5OYwh-00S{WZRyvtMK|jbo{Sb)H0bktVeRXhcaeFrk86 zovIQp+Iw_)G9_9p>!>3&{(i>%!t4^MSNE+JZ#ACVg%mXNL+_KD5desIr_~$U)0XE* zo;Eq5ZYTO%>sjl_>c_={2>Z=7>t~06~fkT^X4#Up_3&VvphHY7!i^SLSHGLQ0(&k+$huv0%56k7e z6l^4$s@15PE=&3wD4dIIwem9%MJIhSnl>Ui#Ym~Tj9$fY_&lB55({*cLO()LdaC^U zg;O(rd-ER=L!!ZW2;m~eUsMPs?f)H3M+2m|fT9;6^54W;@nCs*v6iFbI&LWp$vSTR zuj2K+xojrfJl&_!S8unCSYiX?!EG3TJG2P%*CWuK((B)-G;N)G#4;t1xXMkfEX*ao zePa|PSG!g-UUw|xPJ1%!5zvtHlkzTyxwN_3+i)a9@yE@2$8l!FbEJ$$D$&C6YB2mu zcSf0ZgfzW}w_|!h2;JQ6oxC#@{K9}nOR)+kTt0&;rVx;9&L^vwAm^=RzoS7n+PM*f zZ&8kvKN?T|WqXWuFywaH!9-&bu!o^%*D^MOEJx*h(>whAuoY}wx9ZVO09<{fr(RtR z>*8acC@MtsQ`9~WL-34`wD^kMYp4)f3`V zr>^+Bw1Qo|kF23ECO&#szALDFLH@WLsjxH>hxo`o!;?B9495%$l%QvC--XxT*UH>C z&6NqyR@dOR%WaYvEcc(OxpsfO${mqLlVxT4eCAkRas}S1(tE|N(qxLp$Km4xr8eQJ zgE;w?6>96UgV`LF8&i-3f{B7RKOp!orq3H^9af6jW1vIbJ>a@UX&}+3cZrf_j9bv4 zt5(WJE%n)2meENj?@o(t-DMHO>31>wW)v zCSdTs1jF36=f=QesCJ}iFR(LcD&7-rdS-ZfWu9!V-7_AZq9U{J91?J;Ht(f8>(25C zXEmeWepiw5azohJ=>+S8X0IhPP?Ds7@$OAgJ1fVUK@HhFVZp*yOX(Qu(@O!B*xsxa z@$t|4+B=NLQQoGpv}udVKfz`xlB~uOo#4uCqgc!C1Bv#9;tkfIGSY7C#v)AX62m^Z z&*g_dwU&yW@2u1WBJA-vg|0;SXH z=aqXZmNJ$e!cz4qm10h?k6i2v!+Q{_IeCJ@i&RsZnU#Lo2k5Nl6Ss)mv9obH`zp0x zcw#G~$Ds(2P1y~5{=r-2VtG4{-CMU|2Oi^%ZTc+17R;=|BSiOk>c4+|by0Fj=}R}d zirx!E8EJ=N*&?h}lSpD~OgC|vHDP<_@oPrhCo-FuqqizOZ>j_{*;k#`oP+N;#nb+% zc;*lLqCWe6VSYCXp}kq~VZPLIyDEuQ%<@Gi; z?K{zFHJ;-SMHEY~h8loH3slP*{a)5tQuM4iv{oEy$&JEEP|h1ZICIdq`H5%g|pvOxX;bgLkc;4*kd@1G4-0 zrt$*@<_3tJ*4mS)>c76mSHD$tWL8La*Lo!_SD+vbd2e(ThE?<3%y- zoHz6)vazL+ny3!`?t!@nW9swjmX|a6fM(?e6=UNGH6b^+((f|HYDS!|F zn0Go{ZdU#g#maugS2s=0Z|H;qT!39M8EWe~b!=q2)c}T~GT-_V(z1I0@$P>COVmaC literal 0 HcmV?d00001 diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-truststore.p12 b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/cassandra/server-truststore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..ce1010ad55defb1535e76e9cd396f1d6b890eade GIT binary patch literal 1782 zcmV7Duzgg_YDCD0ic2gjRb-Qi72`Yw2hW8Bt2LUi<1_>&LNQU*SClCSwATSID2r7n1hW8Bu2?YQ! z9R>+thDZTr0|Wso1P~SIxOV8Qfd;NARa^(sHI9IS1@Iu6jp*Uyvj2j}7Di6RtQ{c-ly|L=p)kL0Gh=E67m`Kn6@XY{|!&)-0k$R@p4N%+-f&lG$i?R;qP zo?oqh#u<>qvO)$nb{d2#F3FKxec%6~j*e89{!@v0M#yiS#j!T|90(CsON|a97sQ&Q zr+nRn+t--#Mdw;cvW#`cCvTxPq4qAb}Cb9S*<)4#VnMD{9z%|RZ{aferh{- z0wO~!MG{ISe=5pJ&yEd+^rZ?xZXdK;+0Q|p3|dC-G2I#nNa0%u@=Y-96p8uP z!Ze_f_`ALQYDJ<#R~;L!x9n|u*89hnb`VSgUdqsf>_5#8$H;ZVa6eb4aOP*(ZBeLK zp)$egfu!rv?`LDKV3=h>aNO-|%_EakVj-Lv<=hh1(+^8?=*y;!ergWYn@$eZ2A^ufW2zS3OEgMU{P z4ZjBJ*4p2B(C6dq>NYO1tFIq~HW-O$*dp?`c5$ir*O>UJSiiNb8Jv<41FcV+Z00(4 zGu@4SLs#2(G=`TUUK-`EYEu8?!8q<#Dd;pekyWEQ<_2uj8v$#`a-9h*M=-wmU+879 zPr=B|Ji_ceU@bisFDL>eGp*<-RSOz2w-`FR@VlLhuowO`72M?q!eV1wxd)@M>XVRs zvva#{9p!mBmn0bM?+=nFUg^m{2K2M9Y0$z>=5_Xj&mAKn<*qKhf(U`o65FsHbo5^& zJlHXgg_19J3V>XU6vLaIN7YusXPS^2+|68dmH|`kP8l&vVEc1$W~&d4ozl{(@W-2a zO5T+p+;Ex|B2jzz4mpfzSCJg6;6PlyY(%#|_%W0G<|2`}AG&H|7$~$~4pGqGUmw@6klA|j1Ae2*!{>i;zgp=-P$;wDs`IrTf#7h29 zL4f8ahk~N+s%?{-4 zJZD}IYboQ)t7fUmw17bX?lC(}QGFfqbTF-apa%uXk2laV_mh4iS;W@*pR!-Ddi(ZA zMK(p+gbrfrBqk(6~tIRgQ=+e>So@zS`@;UkShu^CB-4%|@n zuU8~9s^vbFVX02?3$|c~?)SggLPRQu$^A0tR04#&t==0D7sW>%NC9O71OfpC00bZ;O!bM`nudcTSagP{ + mongod + --auth + --tlsMode requireTLS + --tlsCertificateKeyFile /run/secrets/ssl-cert + --tlsCAFile /run/secrets/ssl-ca + --bind_ip_all + labels: + - 'org.springframework.boot.sslbundle.pem.keystore.certificate=client.crt' + - 'org.springframework.boot.sslbundle.pem.keystore.private-key=client.key' + - 'org.springframework.boot.sslbundle.pem.truststore.certificate=ca.crt' +secrets: + ssl-ca: + file: 'ca.crt' + ssl-cert: + file: 'mongo.pem' \ No newline at end of file diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo.pem b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo.pem new file mode 100644 index 00000000000..f25c216ea3f --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo.pem @@ -0,0 +1,54 @@ +-----BEGIN PRIVATE KEY----- +MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQCyWXGxJDNNMmU0 +cx9cLZsIhcI+x8KAIGXsVs/PzbyPAmT4RhxeHT5ZMUaSzRbFLBvw1DNrlS3IJQMS +55mP19WPmZYFj3tYK7TVKX/fEKUeZiKxd/LK/bsYp5zs9pI66sKbYkOTIdE26aIl +E5riO143QY4fPDsViwzfvv1O43DXj+C1b54Gsae+CulTt9tS/HjYOLp+0ZhBTAiL +7e4hqpP/+LuS0MxoBAm2QvqFpPNnkk3aoo7lrfj9ZHP8Cm8/DeWkNXxziqhOTcLQ +GD0w/5oOdm2O0sFI30IlbCv6fXVBoyAdOi0Qqw5qEZ2LcnbNjEK8k/QtP6GM3Y71 +pHNIwiwzAgMBAAECgf9REZuCvy2Bi8SoTnjqQuHG5FuA6cPuisuFZr1k88IO+zJQ +uY3WKNs29BV+LcxnoK29W8jQnjqPHXcMfrF5dVWmkrrJdu8JLaGWVHF+uBq8nRb0 +2LvREh5XhZTGzIESNdc/7GIxdouag/8FlzCUYQGuT3v9+wUCiim+4CuIuPvv7ncD +8vANe3Ua5G0mHjVshOiMNpegg45zYlzYpMtUFPs+asLilW6A7UlgC+pLZ1cHUUlU +ZB7KOGT9JdrZpilTidl6LLvDDQK30TSWz8A26SuEAE71DR2VEjLVpjTNS76vlx+c +CrYr/WwpMb0xul+e/uHiNgo+51FiTiJ/IfuGeskCgYEA804CXQM6i5m4/Upps2yG +aTae5xBaYUquZREp5Zb054U6lUAHI41iTMTIwTTvWn5ogNojgi+YjljkzRj2RQ5k +NccBkjBBwwUNVWpBoGeZ73KAdejNB4C4ucGc2kkqEDo4MU5x3IE4JK1Yi1jl9mKb +IR6m3pqb2PCQHjO8sqKNHYkCgYEAu6fH/qUd/XGmCZJWY5K6jg3dISXH16MTO5M+ +jetprkGMMybWKZQa1GedXurPexE48oRlRhkjdQkW6Wcj1Qh6OKp6N2Zx8sY4dLeQ +yVChnMPFE2LK+UlRCKJUZi+rzX415ML6pZg+yW7O2cHpMKv7PlXISw2YDqtboCAi +Y+doqNsCgYBE1yqmBJbZDuqfiCF2KduyA0lcmWzpIEdNw1h2ZIrwwup7dj1O2t8Y +V4lx2TdsBF4vLwli+XKRvCcovMpZaaQC70bLhSnmMxS9uS3OY+HTNTORqQfx+oLJ +1DU8Mf1b0A08LjTbLhijkASAkOuoFehMq66NR3OXIyGz2fGnHYUN+QKBgCC47SL2 +X/hl7PIWVoIef/FtcXXqRKLRiPUGhA3zUwZT38K7rvSpItSPDN4UTAHFywxfEdnb +YFd0Mk6Y8aKgS8+9ynoGnzAaaJXRvKmeKdBQQvlSbNpzcnHy/IylG2xF6dfuOA7Q +MYKmk+Nc8PDPzIveIYMU58MHFn8hm12YaKOpAoGAV1CE8hFkEK9sbRGoKNJkx9nm +CZTv7PybaG/RN4ZrBSwVmnER0FEagA/Tzrlp1pi3sC8ZsC9onSOf6Btq8ZE0zbO1 +vsAm3gTBXcrCJxzw0Wjt8pzEbk3yELm4WE6VDEx4da2jWocdspslpIwdjHnPwsbH +r5O3ZAgigZs/ZtKW/U4= +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIEWjCCAkKgAwIBAgIURBZvq442tp+/K9TZII5Vy/LzVxwwDQYJKoZIhvcNAQEL +BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MB4XDTI0MDUwMTE2NTMyNVoXDTM0MDQyOTE2NTMyNVow +LzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDESMBAGA1UEAwwJbG9jYWxob3N0 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsllxsSQzTTJlNHMfXC2b +CIXCPsfCgCBl7FbPz828jwJk+EYcXh0+WTFGks0WxSwb8NQza5UtyCUDEueZj9fV +j5mWBY97WCu01Sl/3xClHmYisXfyyv27GKec7PaSOurCm2JDkyHRNumiJROa4jte +N0GOHzw7FYsM3779TuNw14/gtW+eBrGnvgrpU7fbUvx42Di6ftGYQUwIi+3uIaqT +//i7ktDMaAQJtkL6haTzZ5JN2qKO5a34/WRz/ApvPw3lpDV8c4qoTk3C0Bg9MP+a +DnZtjtLBSN9CJWwr+n11QaMgHTotEKsOahGdi3J2zYxCvJP0LT+hjN2O9aRzSMIs +MwIDAQABo2IwYDALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1Ud +DgQWBBS9XQHGwJZhG0olAGM1UMNuwZ65DzAfBgNVHSMEGDAWgBRVMLDVqPECWaH6 +GruL9E52VcTrPjANBgkqhkiG9w0BAQsFAAOCAgEAhBcqm5UQahn8iFMETXvfLMR6 +OOPijsHQ5lVfhig08s46a9O5eaJ9EYSYyiDnxYvZ4gYVH03f/kPwNLamvGR5KIBQ +R0DltkPPX4a11/vjwlSq1cXAt9r59nY+sNcVXWgIWH7zNodL8lyTpYhqvB2wEQkx +t2/JKZ8A0sGjed4S6I5HofYd7bnBxQZgfZShQ2SdDbzbcyg4SCEb8ghwnsH0KNZo +jJF+20RpK2VMViE6lylLTEMd/PyAdST/NPoqVxyva3QjTrKt+tkkFTsmNVMXcmYC +f1xo1/YFp73FFE63VYFI+Yw+Ajau8sYSo4+YvgFCy+Efhf3h3GFDtaiNod56uX9G +9M/cu8XsFzFP2e/0YWY3XL+v7ESOdc3g7yS4FQZ7Z6YvfAed9hCB25cDECvZXqJG +HSYDR38NHyAPROuCwlEwDyVmWRl9bpwZt+hr9kaTQScIDx+rV/EF3o0GKIwtR7AK +jaPAta0f4/Uu+EuWAcccSRUMtfx5/Jse/6iliBvy7JXmA+Y0PrT7K4uHO7iktdI+ +x8WbfZKfnLVuqw5fneTjC1n48Ltjis/f8DgO7BuWTmLdZXddjqqxzBSukFTBn4Hg +/oSg3XiMywOAVrRCNJehcdTG0u/BqZsrRjcYAJaf5qG/0tMLNsuF9Y53XQQAeezE +etL+7y0mkeQhVF+Kmy4= +-----END CERTIFICATE----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/ca.crt b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/ca.crt new file mode 100644 index 00000000000..beed250b132 --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/ca.crt @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFhjCCA26gAwIBAgIUfIkk29IT9OpbgfjL8oRIPSLjUcAwDQYJKoZIhvcNAQEL +BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MB4XDTI0MDUwMTE2NTMyNVoXDTM0MDQyOTE2NTMyNVow +OzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlmaWNh +dGUgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAusN2 +KzQQUUxZSiI3ZZuZohFwq2KXSUNPdJ6rgD3/YKNTDSZXKZPO53kYPP0DXf0sm3CH +cyWSWVabyimZYuPWena1MElSL4ZpJ9WwkZoOQ3bPFK1utz6kMOwrgAUcky8H/rIK +j2JEBhkSHUIGr57NjUEwG1ygaSerM8RzWw1PtMq+C8LOu3v94qzE3NDg1QRpyvV9 +OmsLsjISd0ZmAJNi9vmiEH923KnPyiqnQmWKpYicdgQmX1GXylS22jZqAwaOkYGj +X8UdeyvrohkZkM0hn9uaSufQGEW4yKACn3PkjJtzi8drBIyjIi9YcAzBxZB9oVKq +XZMlltgO2fDMmIJi0Ngt0Ci7fCoEMqSocKyDKML6YLr9UWtx4bfsrk+rVO9Q/D/v +8RKgstv7dCf2KWRX3ZJEC0IBHS5gLNq0qqqVcGx3LcSyhdiKJOtSwAnNkHMh+jSQ +xLSlBjcSqTPiGTRK/Rddl+xnU/mBgk7ZBGNrUFaD5McMFjddS7Ih82aHnpQ1gekW +nUGv+Tm/G68h2BvZ5U2q+RfeOCgRW9i/AYW2jgT7IFnfjyUXgBQveauMAchomqFE +VLe95ZgViF6vmH34EKo3w9L5TQiwk/r53YlM7TSOTyDqx66t4zGYDsVMicpKmzi4 +2Rp8EpErARRyREUIKSvWs9O9+uT3+7arNLgHe5ECAwEAAaOBgTB/MB0GA1UdDgQW +BBRVMLDVqPECWaH6GruL9E52VcTrPjAfBgNVHSMEGDAWgBRVMLDVqPECWaH6GruL +9E52VcTrPjAPBgNVHRMBAf8EBTADAQH/MCwGA1UdEQQlMCOCC2V4YW1wbGUuY29t +gglsb2NhbGhvc3SCCTEyNy4wLjAuMTANBgkqhkiG9w0BAQsFAAOCAgEAeSpjCL3j +2GIFBNKr/5amLOYa0kZ6r1dJs+K6xvMsUvsBJ/QQsV5nYDMIoV/NYUd8SyYV4lEj +7LHX5ZbmJrvPk30LGEBG/5Vy2MIATrQrQ14S4nXtEdSnBvTQwPOOaHc+2dTp3YpM +f4ffELKWyispTifx1eqdiUJhURKeQBh+3W7zpyaiN4vJaqEDKGgFQtHA/OyZL2hZ +BpxHB0zpb2iDHV8MeyfOT7HQWUk6p13vdYm6EnyJT8fzWvE+TqYNbqFmB+CLRSXy +R3p1yaeTd4LnVknJ0UBKqEyul3ziHZDhKhBpwdglYOQz4eWjSFhikX9XZ8NaI38Q +QqLZVn0DsH2ztkjrQrUVgK2xn4aUuqoLDk4Hu6h5baUn+f2GLuzx+EXc/i3ikYvw +Y3JyufOgw6nGGFG+/QXEj85XtLPhN7Wm42z2e/BGzi0MLl65sfpEDXvFTA72Yzws +OYaeg/HxeYwUHQgs2fKl/LgV4chntSCvTqfNl6OnQafD/ISJNpx3xWR3HwF+ypFG +UaLE+e1soqEJbzL31U/6pypHLsj8Y8r9hJbZXo2ibnhjFV6fypUAP0rbIzaoWcrJ +T0Sbliz+KQTMzCcubiAi4bI/kZ5FJ4kkaHqUpIWzlx1h2WVJ65ASFDjBWb8eVmB6 +Dyno/RVFR/rUL5091gjGRXhLsi1oUHKdEzU= +-----END CERTIFICATE----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.crt b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.crt new file mode 100644 index 00000000000..811d880fcbd --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.crt @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEWjCCAkKgAwIBAgIURBZvq442tp+/K9TZII5Vy/LzVx0wDQYJKoZIhvcNAQEL +BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MB4XDTI0MDUwMTE2NTMyNVoXDTM0MDQyOTE2NTMyNVow +LzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDESMBAGA1UEAwwJbG9jYWxob3N0 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvGb7tu0odSuOjeY1lHlh +sRR4PayAvlryjfrrp49hjoVTiL3d/Jo6Po5HlqwJcYuclm0EWQR5Vur/zYJpfUE7 +b8+E9Qwe50+YzfQ2tVFEdq/VfqemrYRGee+pMelOCI90enOKCxfpo6EHbz+WnUP0 +mnD8OAF9QpolSdWAMOGJoPdWX65KQvyMXvQbj9VIHmsx7NCaIOYxjHXB/dI2FmXV ++m4VT6mb8he9dXmgK/ozMq6XIPOAXe0n3dlfMTSEddeNeVwnBpr/n5e0cpwGFhdf +NNu5CI4ecipBhXljJi/4/47M/6hd69HwE05C4zyH4ZDZ2JTfaSKOLV+jYdBUqJP5 +dwIDAQABo2IwYDALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgeAMB0GA1Ud +DgQWBBRWiWOo9cm2IF/ZlhWLVjifLzYa/DAfBgNVHSMEGDAWgBRVMLDVqPECWaH6 +GruL9E52VcTrPjANBgkqhkiG9w0BAQsFAAOCAgEAA5Wphtu2nBhY+QNOBOwXq4zF +N5qt2IYTLfR7xqpKhhXx9VkIjdPWpcsGuCuMmfPVNvQWE6iK0/jMMqToTj4H6K7e +MN74j0GwwcknT1P42tUzEpg8LKR8VMdhWhyqdniCDNWWuaz1iVSoF0S2i4jFSzH5 +1q3KMKMZ4niK5aJI0fAGa4fCjyuun1Mfg/qGBGwLnqDkIXjeAopZf4Jb64TtzjAs +j9NT6mYbe3E0tw3fHT9ihYdbZDZgSjeCsuq9OiRMVb0DWWmRoLmmOrlN8IJlHV/3 +WyI/ta4Cw5EZ0oaOg0lIyOxXyvElth1xIvh+kdqZSBsU0gNBri6ZIzYbbTh2KTTO +BJHQt9L5naWG27pDrIxBicWXS/MIYonktm3YgCLfuW3kWcVk8bIlNhfcoAYBBgfM +IEYSYEq+bH2IQ+YoWQz3AxjJ8gEuuSUP6R6mYY65FfpjkKgcpGBvw4EIAmqKDtPS +hlLY/F0XVj9KZzrMyH4/vonu+DAb/P7Zmt2fyk/dQO6bAc3ltRmJbJm4VJ2v/T8I +LVu2FtcUYgtLNtkWUPfdb3GSUUgkKlUpWSty31TKSUszJjW1oRykQhEko6o5U3S8 +ptQzXdApsb1lGOqewkubE25tIu2RLiNkKcjFOjJ/lu0vP9k76wWwRVnFLFvfo4lW +pgywiOifs5JbcCt0ZQ0= +-----END CERTIFICATE----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.key b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.key new file mode 100644 index 00000000000..2ae0f49bf4a --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/client.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC8Zvu27Sh1K46N +5jWUeWGxFHg9rIC+WvKN+uunj2GOhVOIvd38mjo+jkeWrAlxi5yWbQRZBHlW6v/N +gml9QTtvz4T1DB7nT5jN9Da1UUR2r9V+p6athEZ576kx6U4Ij3R6c4oLF+mjoQdv +P5adQ/SacPw4AX1CmiVJ1YAw4Ymg91ZfrkpC/Ixe9BuP1UgeazHs0Jog5jGMdcH9 +0jYWZdX6bhVPqZvyF711eaAr+jMyrpcg84Bd7Sfd2V8xNIR11415XCcGmv+fl7Ry +nAYWF18027kIjh5yKkGFeWMmL/j/jsz/qF3r0fATTkLjPIfhkNnYlN9pIo4tX6Nh +0FSok/l3AgMBAAECggEABXnBe3MwXAMQENzNypOiXK4VE3XMYkePfdsSK163byOD +w3ZeTgQNfU4g8LJK8/homzO0SQIJAdz2+ZFbpsp4A2W2zJ+1jvN5RuX/8/UcVhmk +tb1IL/LWCvx5/aoYBWkgIA70UfQJa2jDbdM0v5j/Gu9yE7GI14jh6DFC3xGMGV3b +fOwManxf7sDibCI1nGjnFYNGxninRr+tpb+a1KNbVzhett68LrgPmtph6B3HCPAJ +zBigk1Phgb8WHozTXxnLyw9/RdKJ0Ro4PFmtQv0EvCSlytptnF+0nXkqr3f851XS +bUWwYFchIFWPMhPfD5B3niNWCV42/sU/bQlk+BMQAQKBgQD6NvMq8EdYy2Y7fXT5 +FgB4s+7EkLgI2d5LUaCXCFgc6iZtCTQKUXj1rIWeRfGrFVCCe8qV+XIMKt/G5eEi +tn5ifHhktA2A8GK1scj026qHP3bVn0hMaUnkCF1UpDRKPiEO5G/apPtav8PbCNaX +GAimLGw+WZNZuv7+T33bEBeUdwKBgQDAwiidayLXkRkz2deefdDKcXQsB7RHFGGy +vfZPBCGqizxml+6ojJkkDsVUKL1IXFfyK9KpQAI6tezn4oktgu4jAQqkYY7QZobs +RpQx1dR+KxEm7ISDBTq/B1Q9cFKUKVvQQy8N2pnIbCdzb6MTOKLmJqFGTjr+5T8q +F32B5vkDAQKBgDCKfH42AwFc5EZiPlEcTZcdARMtKCa/bXqbKVZjjgR+AFpi0K+3 +womWoI1l8E5KYkYOEe0qaU+m+aaybgy37qjYkNqoe34qJFwvU1b9ToXScBFdRz9b +pbQRU1naSTKl/u/OrUxzeTfPwAU8H7VMOlFSiOVHp2he+J0JetcGtixdAoGBAIJQ +QMj7rxhxHcqyEVUy1b6nKNTDeJs9Kjd+uU/+CQyVCQaK3GvScY2w9rLIv/51f3dX +LRoDDf7HExxJSFgeVgQQJjOvSK+XQMvngzSVzQxm7TeVWpiBJpAS0l6e2xUTSODp +KpyBFsoqZBlkdaj+9xIFN66iILxGG4fHTbBOiDYBAoGBAOZMKjM5N/hGcCmik/6t +p/zBA2pN9O6zwPndITTsdyVWSlVqCZhXlRX47CerAN+/WVCidlh7Vp5Tuy75Wa77 +v16IDLO01txgWNobcLaM4VgFsyLi5JuxK73S18Vb1cKWdHFRF0LH3cUIq20fjpv6 +Odl4vjNOncXMZCLPHQ+bKWaf +-----END PRIVATE KEY----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-ssl-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-ssl-compose.yaml new file mode 100644 index 00000000000..3f39d29ddbb --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-ssl-compose.yaml @@ -0,0 +1,26 @@ +services: + rabbitmq: + image: '{imageName}' + environment: + - 'RABBITMQ_DEFAULT_USER=myuser' + - 'RABBITMQ_DEFAULT_PASS=secret' + ports: + - '5672' + - '5671' + secrets: + - ssl-ca + - ssl-key + - ssl-cert + volumes: + - ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro + labels: + - 'org.springframework.boot.sslbundle.pem.keystore.certificate=client.crt' + - 'org.springframework.boot.sslbundle.pem.keystore.private-key=client.key' + - 'org.springframework.boot.sslbundle.pem.truststore.certificate=ca.crt' +secrets: + ssl-ca: + file: 'ca.crt' + ssl-key: + file: 'server.key' + ssl-cert: + file: 'server.crt' \ No newline at end of file diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbitmq.conf b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbitmq.conf new file mode 100644 index 00000000000..55b842131ca --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbitmq.conf @@ -0,0 +1,8 @@ +listeners.ssl.default=5671 + +ssl_options.cacertfile=/run/secrets/ssl-ca +ssl_options.certfile=/run/secrets/ssl-cert +ssl_options.keyfile=/run/secrets/ssl-key + +ssl_options.verify=verify_peer +ssl_options.fail_if_no_peer_cert=true diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.crt b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.crt new file mode 100644 index 00000000000..57c66cc78a3 --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.crt @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEWjCCAkKgAwIBAgIURBZvq442tp+/K9TZII5Vy/LzVxwwDQYJKoZIhvcNAQEL +BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MB4XDTI0MDUwMTE2NTMyNVoXDTM0MDQyOTE2NTMyNVow +LzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDESMBAGA1UEAwwJbG9jYWxob3N0 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsllxsSQzTTJlNHMfXC2b +CIXCPsfCgCBl7FbPz828jwJk+EYcXh0+WTFGks0WxSwb8NQza5UtyCUDEueZj9fV +j5mWBY97WCu01Sl/3xClHmYisXfyyv27GKec7PaSOurCm2JDkyHRNumiJROa4jte +N0GOHzw7FYsM3779TuNw14/gtW+eBrGnvgrpU7fbUvx42Di6ftGYQUwIi+3uIaqT +//i7ktDMaAQJtkL6haTzZ5JN2qKO5a34/WRz/ApvPw3lpDV8c4qoTk3C0Bg9MP+a +DnZtjtLBSN9CJWwr+n11QaMgHTotEKsOahGdi3J2zYxCvJP0LT+hjN2O9aRzSMIs +MwIDAQABo2IwYDALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1Ud +DgQWBBS9XQHGwJZhG0olAGM1UMNuwZ65DzAfBgNVHSMEGDAWgBRVMLDVqPECWaH6 +GruL9E52VcTrPjANBgkqhkiG9w0BAQsFAAOCAgEAhBcqm5UQahn8iFMETXvfLMR6 +OOPijsHQ5lVfhig08s46a9O5eaJ9EYSYyiDnxYvZ4gYVH03f/kPwNLamvGR5KIBQ +R0DltkPPX4a11/vjwlSq1cXAt9r59nY+sNcVXWgIWH7zNodL8lyTpYhqvB2wEQkx +t2/JKZ8A0sGjed4S6I5HofYd7bnBxQZgfZShQ2SdDbzbcyg4SCEb8ghwnsH0KNZo +jJF+20RpK2VMViE6lylLTEMd/PyAdST/NPoqVxyva3QjTrKt+tkkFTsmNVMXcmYC +f1xo1/YFp73FFE63VYFI+Yw+Ajau8sYSo4+YvgFCy+Efhf3h3GFDtaiNod56uX9G +9M/cu8XsFzFP2e/0YWY3XL+v7ESOdc3g7yS4FQZ7Z6YvfAed9hCB25cDECvZXqJG +HSYDR38NHyAPROuCwlEwDyVmWRl9bpwZt+hr9kaTQScIDx+rV/EF3o0GKIwtR7AK +jaPAta0f4/Uu+EuWAcccSRUMtfx5/Jse/6iliBvy7JXmA+Y0PrT7K4uHO7iktdI+ +x8WbfZKfnLVuqw5fneTjC1n48Ltjis/f8DgO7BuWTmLdZXddjqqxzBSukFTBn4Hg +/oSg3XiMywOAVrRCNJehcdTG0u/BqZsrRjcYAJaf5qG/0tMLNsuF9Y53XQQAeezE +etL+7y0mkeQhVF+Kmy4= +-----END CERTIFICATE----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.key b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.key new file mode 100644 index 00000000000..95e2ef3e8b3 --- /dev/null +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/rabbit/server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQCyWXGxJDNNMmU0 +cx9cLZsIhcI+x8KAIGXsVs/PzbyPAmT4RhxeHT5ZMUaSzRbFLBvw1DNrlS3IJQMS +55mP19WPmZYFj3tYK7TVKX/fEKUeZiKxd/LK/bsYp5zs9pI66sKbYkOTIdE26aIl +E5riO143QY4fPDsViwzfvv1O43DXj+C1b54Gsae+CulTt9tS/HjYOLp+0ZhBTAiL +7e4hqpP/+LuS0MxoBAm2QvqFpPNnkk3aoo7lrfj9ZHP8Cm8/DeWkNXxziqhOTcLQ +GD0w/5oOdm2O0sFI30IlbCv6fXVBoyAdOi0Qqw5qEZ2LcnbNjEK8k/QtP6GM3Y71 +pHNIwiwzAgMBAAECgf9REZuCvy2Bi8SoTnjqQuHG5FuA6cPuisuFZr1k88IO+zJQ +uY3WKNs29BV+LcxnoK29W8jQnjqPHXcMfrF5dVWmkrrJdu8JLaGWVHF+uBq8nRb0 +2LvREh5XhZTGzIESNdc/7GIxdouag/8FlzCUYQGuT3v9+wUCiim+4CuIuPvv7ncD +8vANe3Ua5G0mHjVshOiMNpegg45zYlzYpMtUFPs+asLilW6A7UlgC+pLZ1cHUUlU +ZB7KOGT9JdrZpilTidl6LLvDDQK30TSWz8A26SuEAE71DR2VEjLVpjTNS76vlx+c +CrYr/WwpMb0xul+e/uHiNgo+51FiTiJ/IfuGeskCgYEA804CXQM6i5m4/Upps2yG +aTae5xBaYUquZREp5Zb054U6lUAHI41iTMTIwTTvWn5ogNojgi+YjljkzRj2RQ5k +NccBkjBBwwUNVWpBoGeZ73KAdejNB4C4ucGc2kkqEDo4MU5x3IE4JK1Yi1jl9mKb +IR6m3pqb2PCQHjO8sqKNHYkCgYEAu6fH/qUd/XGmCZJWY5K6jg3dISXH16MTO5M+ +jetprkGMMybWKZQa1GedXurPexE48oRlRhkjdQkW6Wcj1Qh6OKp6N2Zx8sY4dLeQ +yVChnMPFE2LK+UlRCKJUZi+rzX415ML6pZg+yW7O2cHpMKv7PlXISw2YDqtboCAi +Y+doqNsCgYBE1yqmBJbZDuqfiCF2KduyA0lcmWzpIEdNw1h2ZIrwwup7dj1O2t8Y +V4lx2TdsBF4vLwli+XKRvCcovMpZaaQC70bLhSnmMxS9uS3OY+HTNTORqQfx+oLJ +1DU8Mf1b0A08LjTbLhijkASAkOuoFehMq66NR3OXIyGz2fGnHYUN+QKBgCC47SL2 +X/hl7PIWVoIef/FtcXXqRKLRiPUGhA3zUwZT38K7rvSpItSPDN4UTAHFywxfEdnb +YFd0Mk6Y8aKgS8+9ynoGnzAaaJXRvKmeKdBQQvlSbNpzcnHy/IylG2xF6dfuOA7Q +MYKmk+Nc8PDPzIveIYMU58MHFn8hm12YaKOpAoGAV1CE8hFkEK9sbRGoKNJkx9nm +CZTv7PybaG/RN4ZrBSwVmnER0FEagA/Tzrlp1pi3sC8ZsC9onSOf6Btq8ZE0zbO1 +vsAm3gTBXcrCJxzw0Wjt8pzEbk3yELm4WE6VDEx4da2jWocdspslpIwdjHnPwsbH +r5O3ZAgigZs/ZtKW/U4= +-----END PRIVATE KEY----- diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactory.java index dd1510ad2bd..1a9c906d9cf 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactory.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetai import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create @@ -57,11 +58,19 @@ class CassandraDockerComposeConnectionDetailsFactory private final String datacenter; + private final SslBundle sslBundle; + CassandraDockerComposeConnectionDetails(RunningService service) { super(service); CassandraEnvironment cassandraEnvironment = new CassandraEnvironment(service.env()); this.contactPoints = List.of(new Node(service.host(), service.ports().get(CASSANDRA_PORT))); this.datacenter = cassandraEnvironment.getDatacenter(); + this.sslBundle = getSslBundle(service); + } + + @Override + public SslBundle getSslBundle() { + return this.sslBundle; } @Override diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactory.java index 5f9f9cb76af..1ea31da1173 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactory.java @@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnect import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create @@ -61,13 +62,22 @@ class ElasticsearchDockerComposeConnectionDetailsFactory private final List nodes; + private final SslBundle sslBundle; + ElasticsearchDockerComposeConnectionDetails(RunningService service) { super(service); this.environment = new ElasticsearchEnvironment(service.env()); - this.nodes = List.of(new Node(service.host(), service.ports().get(ELASTICSEARCH_PORT), Protocol.HTTP, + this.sslBundle = getSslBundle(service); + Protocol protocol = (this.sslBundle != null) ? Protocol.HTTPS : Protocol.HTTP; + this.nodes = List.of(new Node(service.host(), service.ports().get(ELASTICSEARCH_PORT), protocol, getUsername(), getPassword())); } + @Override + public SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public String getUsername() { return "elastic"; diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactory.java index 6f8b344da12..be85dd5429b 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactory.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create {@link MongoConnectionDetails} @@ -56,8 +57,11 @@ class MongoDockerComposeConnectionDetailsFactory extends DockerComposeConnection private final ConnectionString connectionString; + private final SslBundle sslBundle; + MongoDockerComposeConnectionDetails(RunningService service) { super(service); + this.sslBundle = getSslBundle(service); this.connectionString = buildConnectionString(service); } @@ -82,6 +86,11 @@ class MongoDockerComposeConnectionDetailsFactory extends DockerComposeConnection return new ConnectionString(builder.toString()); } + @Override + public SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public ConnectionString getConnectionString() { return this.connectionString; diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactory.java index 793a1995545..e84b872c86f 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactory.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create {@link RabbitConnectionDetails} @@ -60,9 +61,12 @@ class RabbitDockerComposeConnectionDetailsFactory private final List
addresses; + private final SslBundle sslBundle; + protected RabbitDockerComposeConnectionDetails(RunningService service) { super(service); this.environment = new RabbitEnvironment(service.env()); + this.sslBundle = getSslBundle(service); this.addresses = List.of(new Address(service.host(), service.ports().get(RABBITMQ_PORT))); } @@ -76,6 +80,11 @@ class RabbitDockerComposeConnectionDetailsFactory return this.environment.getPassword(); } + @Override + public SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public String getVirtualHost() { return "/";