diff --git a/integration-tests/rest-client/generate-trust-store-for-self-signed.sh b/integration-tests/rest-client/generate-trust-store-for-self-signed.sh
new file mode 100755
index 00000000000000..a15a1994a39023
--- /dev/null
+++ b/integration-tests/rest-client/generate-trust-store-for-self-signed.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+##########################################################################################################################################
+# Script that generates the trustStore containing the self signed certificate used in 'io.quarkus.it.rest.client.selfsigned.ExternalSelfSignedResource' #
+##########################################################################################################################################
+
+
+echo -n | openssl s_client -connect self-signed.badssl.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > self-signed.cert
+keytool -importcert -file self-signed.cert -alias self-signed -keystore self-signed -storepass changeit -noprompt
+rm self-signed.cert
diff --git a/integration-tests/rest-client/pom.xml b/integration-tests/rest-client/pom.xml
index bf77e6b144705e..b271a14d68b0ee 100644
--- a/integration-tests/rest-client/pom.xml
+++ b/integration-tests/rest-client/pom.xml
@@ -70,6 +70,8 @@
en
+ ${project.basedir}/self-signed
+ changeit
@@ -119,9 +121,11 @@
false
true
true
+ true
false
false
${graalvmHome}
+ -J-Djavax.net.ssl.trustStore=${project.basedir}/self-signed, -J-Djavax.net.ssl.trustStorePassword=changeit
@@ -131,4 +135,4 @@
-
\ No newline at end of file
+
diff --git a/integration-tests/rest-client/self-signed b/integration-tests/rest-client/self-signed
new file mode 100644
index 00000000000000..52feac47daf37d
Binary files /dev/null and b/integration-tests/rest-client/self-signed differ
diff --git a/integration-tests/rest-client/src/main/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedResource.java b/integration-tests/rest-client/src/main/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedResource.java
new file mode 100644
index 00000000000000..f62a6f7d674625
--- /dev/null
+++ b/integration-tests/rest-client/src/main/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedResource.java
@@ -0,0 +1,45 @@
+package io.quarkus.it.rest.client.selfsigned;
+
+import java.io.IOException;
+import java.net.URL;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+/**
+ * This has nothing to do with rest-client, but we add it here in order to avoid creating
+ * a new integration test that would slow down our CI
+ */
+@Path("/self-signed")
+public class ExternalSelfSignedResource {
+
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String perform() throws IOException {
+ try {
+ return doGetCipher();
+ } catch (IOException e) {
+
+ // if it fails it might be because the remote service is down, so sleep and try again
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException ignored) {
+
+ }
+
+ return doGetCipher();
+ }
+ }
+
+ private String doGetCipher() throws IOException {
+ // this URL provides an always on example of an HTTPS URL utilizing self-signed certificate
+ URL url = new URL("https://self-signed.badssl.com/");
+ HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
+ con.setRequestMethod("GET");
+ con.getResponseCode();
+ return con.getCipherSuite();
+ }
+}
diff --git a/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedITCase.java b/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedITCase.java
new file mode 100644
index 00000000000000..d7d20bcc28bc91
--- /dev/null
+++ b/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedITCase.java
@@ -0,0 +1,8 @@
+package io.quarkus.it.rest.client.selfsigned;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+public class ExternalSelfSignedITCase extends ExternalSelfSignedTestCase {
+
+}
diff --git a/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedTestCase.java b/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedTestCase.java
new file mode 100644
index 00000000000000..7b2530e7d93bbc
--- /dev/null
+++ b/integration-tests/rest-client/src/test/java/io/quarkus/it/rest/client/selfsigned/ExternalSelfSignedTestCase.java
@@ -0,0 +1,23 @@
+package io.quarkus.it.rest.client.selfsigned;
+
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+import org.junit.jupiter.api.Test;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+
+@QuarkusTest
+public class ExternalSelfSignedTestCase {
+
+ @Test
+ public void included() {
+ RestAssured.when()
+ .get("/self-signed")
+ .then()
+ .statusCode(200)
+ .body(is(not(empty())));
+ }
+}