diff --git a/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java b/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java
index 8877ce9bda3cc0e051e82f1432be5f8eafa7df36..844828a79813f4cd8da7e562f9ad7d3ce482ff71 100644
--- a/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java
+++ b/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java
@@ -13,10 +13,10 @@ import dev.fitko.fitconnect.api.services.Subscriber;
 import dev.fitko.fitconnect.api.services.auth.OAuthService;
 import dev.fitko.fitconnect.api.services.crypto.CryptoService;
 import dev.fitko.fitconnect.api.services.crypto.MessageDigestService;
-import dev.fitko.fitconnect.api.services.keys.KeyService;
 import dev.fitko.fitconnect.api.services.events.EventLogService;
 import dev.fitko.fitconnect.api.services.events.EventLogVerificationService;
 import dev.fitko.fitconnect.api.services.events.SecurityEventService;
+import dev.fitko.fitconnect.api.services.keys.KeyService;
 import dev.fitko.fitconnect.api.services.schema.SchemaProvider;
 import dev.fitko.fitconnect.api.services.submission.SubmissionService;
 import dev.fitko.fitconnect.api.services.validation.ValidationService;
@@ -27,11 +27,11 @@ import dev.fitko.fitconnect.core.SubmissionSubscriber;
 import dev.fitko.fitconnect.core.auth.DefaultOAuthService;
 import dev.fitko.fitconnect.core.crypto.HashService;
 import dev.fitko.fitconnect.core.crypto.JWECryptoService;
-import dev.fitko.fitconnect.core.keys.PublicKeyService;
 import dev.fitko.fitconnect.core.events.EventLogApiService;
 import dev.fitko.fitconnect.core.events.EventLogVerifier;
 import dev.fitko.fitconnect.core.events.SecurityEventTokenService;
 import dev.fitko.fitconnect.core.http.ProxyConfig;
+import dev.fitko.fitconnect.core.keys.PublicKeyService;
 import dev.fitko.fitconnect.core.schema.SchemaResourceProvider;
 import dev.fitko.fitconnect.core.submission.SubmissionApiService;
 import dev.fitko.fitconnect.core.validation.DefaultValidationService;
@@ -55,6 +55,7 @@ public final class ClientFactory {
     private static final String CONFIG_ENV_KEY_NAME = "FIT_CONNECT_CONFIG";
     private static final String SET_SCHEMA_DIR = "/set-schema";
     private static final String METADATA_SCHEMA_DIR = "/metadata-schema";
+    private static final String PATH_TO_TRUSTED_ROOT_CERTIFICATES = "trusted-test-root-certificates";
 
     private ClientFactory() {
     }
@@ -161,7 +162,7 @@ public final class ClientFactory {
     }
 
     private static ValidationService getValidationService(final ApplicationConfig config, final SchemaProvider schemaProvider, final MessageDigestService messageDigestService) {
-        return new DefaultValidationService(config, messageDigestService, schemaProvider);
+        return new DefaultValidationService(config, messageDigestService, schemaProvider, PATH_TO_TRUSTED_ROOT_CERTIFICATES);
     }
 
     private static CryptoService getCryptoService(final MessageDigestService messageDigestService) {
diff --git a/core/src/main/java/dev/fitko/fitconnect/core/validation/DefaultValidationService.java b/core/src/main/java/dev/fitko/fitconnect/core/validation/DefaultValidationService.java
index 1f5e8171c977b6872ee8ab8839e0e54c9ff269f6..abda720f889c757d3f04f06ee70d0249aa15f780 100644
--- a/core/src/main/java/dev/fitko/fitconnect/core/validation/DefaultValidationService.java
+++ b/core/src/main/java/dev/fitko/fitconnect/core/validation/DefaultValidationService.java
@@ -59,16 +59,18 @@ public class DefaultValidationService implements ValidationService {
     private static final ObjectMapper MAPPER = new ObjectMapper().setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
     private static final JsonSchemaFactory SCHEMA_FACTORY = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V202012);
     private static final String VALID_SCHEMA_URL_EXPRESSION = "https://schema\\.fitko\\.de/fit-connect/metadata/1\\.\\d+\\.\\d+/metadata.schema.json";
-    private static final String TRUSTED_ROOT_CERTIFICATE_FOLDER = "trusted-root-certificates";
 
     private final MessageDigestService messageDigestService;
     private final SchemaProvider schemaProvider;
     private final ApplicationConfig config;
+    private final String pathToTrustedRootCertificates;
 
-    public DefaultValidationService(final ApplicationConfig config, final MessageDigestService messageDigestService, final SchemaProvider schemaProvider) {
+    public DefaultValidationService(final ApplicationConfig config, final MessageDigestService messageDigestService,
+                                    final SchemaProvider schemaProvider, final String pathToTrustedRootCertificates) {
         this.config = config;
         this.messageDigestService = messageDigestService;
         this.schemaProvider = schemaProvider;
+        this.pathToTrustedRootCertificates = pathToTrustedRootCertificates;
     }
 
     @Override
@@ -179,7 +181,7 @@ public class DefaultValidationService implements ValidationService {
         return returnValidationResult(SCHEMA_FACTORY.getSchema(schema).validate(inputNode));
     }
 
-    private void validateKey(final RSAKey publicKey, final KeyOperation purpose) throws JWKValidationException, CertificateEncodingException {
+    private void validateKey(final RSAKey publicKey, final KeyOperation purpose) throws JWKValidationException {
         if (config.getCurrentEnvironment().isAllowInsecurePublicKey()) {
             validateWithoutCertChain(publicKey, purpose);
         } else {
@@ -195,7 +197,7 @@ public class DefaultValidationService implements ValidationService {
     }
 
     private JWKValidator addLogLevel(final JWKValidatorBuilder.JWKValidatorX5CErrorHandling validator) {
-        if (validateSilent()) {
+        if (config.getCurrentEnvironment().isAllowInsecurePublicKey()) {
             return validator.withoutThrowingExceptions().withErrorLogLevel(LogLevel.WARN).build();
         } else {
             return validator.withThrowingExceptions().withErrorLogLevel(LogLevel.ERROR).build();
@@ -204,7 +206,8 @@ public class DefaultValidationService implements ValidationService {
 
     private void validateWithoutCertChain(final RSAKey publicKey, final KeyOperation purpose) throws JWKValidationException {
         LOGGER.info("Validating public key without XC5 certificate chain");
-        withoutX5CValidation().withErrorLogLevel(validateSilent() ? LogLevel.WARN : LogLevel.ERROR).build().validate(publicKey, purpose);
+        withoutX5CValidation().withErrorLogLevel(config.getCurrentEnvironment().isAllowInsecurePublicKey() ?
+                LogLevel.WARN : LogLevel.ERROR).build().validate(publicKey, purpose);
     }
 
     void validateCertChain(final RSAKey publicKey, final KeyOperation purpose) throws JWKValidationException {
@@ -220,7 +223,7 @@ public class DefaultValidationService implements ValidationService {
 
     private List<String> loadTrustedRootCertificates() {
 
-        List<X509Certificate> trustedRootCertificates = FileUtil.loadContentOfFilesInDirectory(TRUSTED_ROOT_CERTIFICATE_FOLDER)
+        List<X509Certificate> trustedRootCertificates = FileUtil.loadContentOfFilesInDirectory(this.pathToTrustedRootCertificates)
                 .stream().map(FileUtil::convertToX509Certificate).collect(Collectors.toList());
         List<String> encodedCertificates = trustedRootCertificates.stream().map(cert -> {
             try {
@@ -254,10 +257,6 @@ public class DefaultValidationService implements ValidationService {
                 .validate(publicKey);
     }
 
-    private boolean validateSilent() {
-        return config.getCurrentEnvironment().isAllowInsecurePublicKey();
-    }
-
     private String errorsToSingleString(final Set<ValidationMessage> errors) {
         return errors.stream()
                 .map(ValidationMessage::getMessage)
diff --git a/core/src/test/java/dev/fitko/fitconnect/core/events/SecurityEventTokenServiceTest.java b/core/src/test/java/dev/fitko/fitconnect/core/events/SecurityEventTokenServiceTest.java
index 2500d1e32979e5bfd1c52bbad446e22ce29d3805..50c2f34263b1564fd094fdc2d94be75a9549ba67 100644
--- a/core/src/test/java/dev/fitko/fitconnect/core/events/SecurityEventTokenServiceTest.java
+++ b/core/src/test/java/dev/fitko/fitconnect/core/events/SecurityEventTokenServiceTest.java
@@ -11,8 +11,8 @@ import dev.fitko.fitconnect.api.config.ApplicationConfig;
 import dev.fitko.fitconnect.api.config.Environment;
 import dev.fitko.fitconnect.api.config.EnvironmentName;
 import dev.fitko.fitconnect.api.config.SchemaConfig;
-import dev.fitko.fitconnect.api.domain.model.event.EventPayload;
 import dev.fitko.fitconnect.api.domain.model.event.Event;
+import dev.fitko.fitconnect.api.domain.model.event.EventPayload;
 import dev.fitko.fitconnect.api.domain.model.event.problems.submission.AttachmentsMismatch;
 import dev.fitko.fitconnect.api.domain.model.submission.Submission;
 import dev.fitko.fitconnect.api.exceptions.EventCreationException;
@@ -59,7 +59,7 @@ class SecurityEventTokenServiceTest {
         final List<String> setSchemas = SchemaConfig.getSetSchemaFilePaths("/set-schema");
         final List<String> metadataSchemas = SchemaConfig.getMetadataSchemaFileNames("/metadata-schema");
         final SchemaProvider schemaProvider = new SchemaResourceProvider(setSchemas, metadataSchemas);
-        this.validationService = new DefaultValidationService(config, new HashService(), schemaProvider);
+        this.validationService = new DefaultValidationService(config, new HashService(), schemaProvider, "trusted-test-root-certificates");
         this.underTest = new SecurityEventTokenService(config, this.validationService, this.signingKey);
     }
 
diff --git a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java
index 0bbf98f418326eccdbeba3d5b644748e91faa050..066bcdf12d298d4fada5698ab8220aa3ba87a644 100644
--- a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java
+++ b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java
@@ -28,25 +28,20 @@ import dev.fitko.fitconnect.core.schema.SchemaResourceProvider;
 import dev.fitko.fitconnect.core.testutil.LogCaptor;
 import dev.fitko.fitconnect.core.util.FileUtil;
 import dev.fitko.fitconnect.jwkvalidator.exceptions.JWKValidationException;
-import dev.fitko.fitconnect.jwkvalidator.exceptions.LogLevel;
 import org.hamcrest.CoreMatchers;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 import java.net.URI;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.X509Certificate;
 import java.text.ParseException;
 import java.time.ZonedDateTime;
 import java.util.*;
-import java.util.stream.Collectors;
 
-import static dev.fitko.fitconnect.jwkvalidator.JWKValidator.withX5CValidation;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.*;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.*;
 
@@ -64,7 +59,7 @@ class DefaultValidationServiceTest {
         final List<String> setSchemas = SchemaConfig.getSetSchemaFilePaths("/set-schema");
         final List<String> metadataSchemas = SchemaConfig.getMetadataSchemaFileNames("/metadata-schema");
         schemaProvider = new SchemaResourceProvider(setSchemas, metadataSchemas);
-        underTest = new DefaultValidationService(config, hashService, schemaProvider);
+        underTest = new DefaultValidationService(config, hashService, schemaProvider, "trusted-test-root-certificates");
     }
 
     @Test
@@ -117,7 +112,7 @@ class DefaultValidationServiceTest {
         config.setEnvironments(Map.of(envName, env));
         config.setActiveEnvironment(envName);
 
-        final DefaultValidationService underTest = new DefaultValidationService(config, hashService, schemaProvider);
+        final DefaultValidationService underTest = new DefaultValidationService(config, hashService, schemaProvider, "trusted-test-root-certificates");
 
         final RSAKey rsaKey = getRsaKeyWithCertChain();
 
@@ -133,7 +128,7 @@ class DefaultValidationServiceTest {
 
         // Given
         final ApplicationConfig config = getApplicationConfig(true);
-        final var underTest = new DefaultValidationService(config, hashService, schemaProvider);
+        final var underTest = new DefaultValidationService(config, hashService, schemaProvider, "trusted-test-root-certificates");
 
         final RSAKey rsaKey = new RSAKeyGenerator(4096)
                 .keyOperations(Set.of(KeyOperation.WRAP_KEY))
@@ -153,7 +148,7 @@ class DefaultValidationServiceTest {
 
         // Given
         final ApplicationConfig config = getApplicationConfig(false);
-        final var underTest = new DefaultValidationService(config, hashService, schemaProvider);
+        final var underTest = new DefaultValidationService(config, hashService, schemaProvider, "trusted-test-root-certificates");
 
         final RSAKey rsaKey = new RSAKeyGenerator(4096)
                 .keyOperations(Set.of(KeyOperation.ENCRYPT))
@@ -405,7 +400,7 @@ class DefaultValidationServiceTest {
         when(mockedMessageDigestService.calculateHMAC(anyString(), anyString())).thenReturn("valid");
 
         DefaultValidationService defaultValidationService = new DefaultValidationService(
-                new ApplicationConfig(), mockedMessageDigestService, mock(SchemaProvider.class));
+                new ApplicationConfig(), mockedMessageDigestService, mock(SchemaProvider.class), "trusted-test-root-certificates");
 
         ValidationResult validationResult = defaultValidationService.validateCallback(
                 "valid", ZonedDateTime.now().toInstant().toEpochMilli(), "body", "secret");
@@ -437,34 +432,54 @@ class DefaultValidationServiceTest {
     }
 
     @Test
-    public void isTransmissionServiceCertificateIsValidAccordingToRootVpki() throws JOSEException, JWKValidationException, CertificateEncodingException, ParseException {
+    @Disabled("will be enabled in scope of https://git.fitko.de/fit-connect/planning/-/issues/901")
+    public void productiveTransmissionServiceCertificateIsValidAccordingToRootCertificates() throws JWKValidationException, ParseException {
 
-        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/cert-grp-fit-connect-zustelldienst-produktivumgebung.json"));
+        DefaultValidationService defaultValidationService = new DefaultValidationService(
+                getApplicationConfig(false), hashService, schemaProvider, "trusted-root-certificates");
+
+        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/grp-fit-connect-zustelldienst-produktivumgebung.json"));
 
-        this.underTest.validateCertChain(rsaKey, KeyOperation.VERIFY);
+        defaultValidationService.validateCertChain(rsaKey, KeyOperation.VERIFY);
     }
 
     @Test
-    public void validateWithLibrary() throws JOSEException, JWKValidationException, ParseException {
-
-        /*X509Certificate x509CertificateToCheck = FileUtil.convertToX509Certificate(
-                FileUtil.loadContentOfFile("certificates/cert-grp-fit-connect-zustelldienst-produktivumgebung.json"));*/
-        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/cert-grp-fit-connect-zustelldienst-produktivumgebung.json"));
-
-        List<X509Certificate> trustedX509RootCertificates = FileUtil.loadContentOfFilesInDirectory("trusted-root-certificates")
-                .stream().map(FileUtil::convertToX509Certificate).collect(Collectors.toList());
-        List<String> base64EncodedCertificates = trustedX509RootCertificates.stream().map(cert -> {
-            try {
-                return Base64.encode(cert.getEncoded()).toString();
-            } catch (CertificateEncodingException e) {
-                throw new RuntimeException(e);
-            }
-        }).collect(Collectors.toList());
-
-        withX5CValidation()
-                .withoutProxy()
-                .withRootCertificatesAsPEM(base64EncodedCertificates).withoutThrowingExceptions().withErrorLogLevel(LogLevel.ERROR).build()
-                .validate(rsaKey);
+    @Disabled("will be enabled in scope of https://git.fitko.de/fit-connect/planning/-/issues/901")
+    public void fitConnectTestCertificateIsValidAccordingToTestRootCertificates() throws JWKValidationException, ParseException {
+
+        DefaultValidationService defaultValidationService = new DefaultValidationService(
+                getApplicationConfig(false), hashService, schemaProvider, "trusted-test-root-certificates");
+
+        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/grp-fitko-testzertifikat-fit-connect-1.json"));
+
+        defaultValidationService.validateCertChain(rsaKey, KeyOperation.VERIFY);
+    }
+
+    @Test
+    @Disabled("will be enabled in scope of https://git.fitko.de/fit-connect/planning/-/issues/901")
+    public void revokedFitConnectTestCertificateIsInvalidAccordingToTestRootCertificates() throws JWKValidationException, ParseException {
+
+        DefaultValidationService defaultValidationService = new DefaultValidationService(
+                getApplicationConfig(false), hashService, schemaProvider, "trusted-test-root-certificates");
+
+        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/grp-fitko-testzertifikat-fit-connect-2.json"));
+
+        defaultValidationService.validateCertChain(rsaKey, KeyOperation.VERIFY);
+    }
+
+    @Test
+    public void fitConnectTestCertificateIsInvalidAccordingToRootCertificates() throws ParseException {
+
+        DefaultValidationService defaultValidationService = new DefaultValidationService(
+                getApplicationConfig(false), hashService, schemaProvider, "trusted-root-certificates");
+
+        RSAKey rsaKey = RSAKey.parse(FileUtil.loadContentOfFile("certificates/grp-fitko-testzertifikat-fit-connect-1.json"));
+
+        Exception exception = assertThrows(JWKValidationException.class, () -> {
+            defaultValidationService.validateCertChain(rsaKey, KeyOperation.VERIFY);
+        });
+
+        assertThat(exception.getMessage(), is("JWK with id LM0FPR9i-Yg1Cks-f_HG4dHocwLc2MU3rigME-Uc1Lc-wrapKey has invalid certificate chain"));
     }
 
     private String getResource(final String filename) throws IOException {
diff --git a/core/src/main/resources/certificates/cert-grp-fit-connect-zustelldienst-produktivumgebung.json b/core/src/test/resources/certificates/grp-fit-connect-zustelldienst-produktivumgebung.json
similarity index 100%
rename from core/src/main/resources/certificates/cert-grp-fit-connect-zustelldienst-produktivumgebung.json
rename to core/src/test/resources/certificates/grp-fit-connect-zustelldienst-produktivumgebung.json
diff --git a/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-1.json b/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-1.json
new file mode 100644
index 0000000000000000000000000000000000000000..c26e9bddf01acd396b7f971c76a90b403ca2a714
--- /dev/null
+++ b/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-1.json
@@ -0,0 +1,15 @@
+{
+  "alg": "RSA-OAEP-256",
+  "e": "AQAB",
+  "key_ops": [
+    "wrapKey"
+  ],
+  "kid": "LM0FPR9i-Yg1Cks-f_HG4dHocwLc2MU3rigME-Uc1Lc-wrapKey",
+  "kty": "RSA",
+  "n": "oSi83-NRxxJ2LG7cWt623K8d1TTc32b2zMOEeBYTvYY9fbPOo-qUpM00e_Q23GajPWkQkZSHllvFXz0E4e9LWc2LVkewDqQc3Usy34NjLLQ6zBr6TZoBwZQv2X65ll8e7nSL9JZyfX_Gde37_wtK5waO483Pwk7cg_zA4XwuxpdKaexErRay7Kd7W3v9Gn61BplFV3zaQ3FIWHMLyj8GyH33UVYnCw7iIUuvGrQG2vEac3Ivx7ObdQ-gRS75n6G3AEouerayFdNkXW12Hz2MDR9QvlA7ZZtQ0_Dq8YgHYqh6A-hXgcXtqrW87l-bph18Zi5RtIPv39VgKgELYm9nnZbVavnfhIt2mJRFjfYnW1GD1E8rkC58-CV4lgzZ5ntQahGOhpsCAckJGlEviefe2HpQ0JEb-pfp-LTe1bycRmkcqaBhfl0Acoayfu48wsZgL9EAUG-1RzFK07EgyMFkpppYpa62Np47gbPJI5vlLY6zRcVGR6y6V2b67X_F-tCLte4XaCHbD0EH59t7ITp44q5qdSP6fMcsG3pSGTU5VoTkpc8BJ43dvufhVJaBL73U32VMBzOTVg6w0nSAuXx8FL4v6lSLfPCDqSEzQl0QKIgF9F2g8sVzhaRKPapRXEcAI9Y2_6WPjVCe7QBcWmI6jGhLQGYy42n1fgI7NyNHkF8",
+  "x5c": [
+    "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"
+  ]
+}
\ No newline at end of file
diff --git a/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-2.json b/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-2.json
new file mode 100644
index 0000000000000000000000000000000000000000..b4f001045a83fcddae2cc0d4f2b796354dbf33ce
--- /dev/null
+++ b/core/src/test/resources/certificates/grp-fitko-testzertifikat-fit-connect-2.json
@@ -0,0 +1,15 @@
+{
+  "alg": "RSA-OAEP-256",
+  "e": "AQAB",
+  "key_ops": [
+    "wrapKey"
+  ],
+  "kid": "rRaGt35McGycD4MeRyHZSLFo7dda2PEJscBuPT1KJdE-wrapKey",
+  "kty": "RSA",
+  "n": "q3HY4MdeI9x1_R3nxqqtwFvkp5P3aWWEIIPet1OWsJNBNtbG-Z0LhM3RX0oJne93m2bMFqwvo5akdJmpeLg-Sl0WBUZt_0UMI55I7S0qWVYOnqQncVJcHIp8FU0SuHNuSDWTPXIxrLuJFm8TkYfpWOvwo1wXZcqCI2vMKLTB5L8D_3z8CqZgSeB_7tXM3QESIt7vRoSCn66Ws5NpvAwJiBCvHJAMJ7D2y2lAFPCweB3c1v6RaR8pX8xFLSxRbKlUEo9sW0HFoMfA8Vq15wgWdVGugopxKe3ySXErCYo1rP4qtS9n8jlyxUHD307KUcKoLBM-qxaIL4xZEFBb2fQ7NF5H1BeyrYQbZp0l5whobo_XuSaW8HwnlHqVna4pLS4o2QSp--5g-IVeO0heEjcQPvWvKy38hYu5AKv1HLhK-SHw0XplrIRYzXc31j5PlE0rBAWhQlVUZr-MtjY19-Oaxlo0D56_Xzrct3PUp8f9pOh1OwzeitO0n4m3bVGcQKa8J6ulB24HndzQBiCB9hxofvvdYNJZB6YKlQzogYKevTVSN24p4Y-CD4AVmDnmDiLe6eFReGRNgXQ5taCmRgQ7Jx1duA18jHQoi9dSlB6JBScuOemwFOYxvUFI-ISBhHv7NQttfCZzb3LL9bsn7ze6Kn2wFuZvsHGT5eZBMDTt-2c",
+  "x5c": [
+    "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"
+  ]
+}
\ No newline at end of file
diff --git a/core/src/test/resources/trusted-test-root-certificates/TEST-PCA20.pem b/core/src/test/resources/trusted-test-root-certificates/TEST-PCA20.pem
new file mode 100644
index 0000000000000000000000000000000000000000..0c5c8b31bfcf8050ba3737dde617dc642f53a13c
--- /dev/null
+++ b/core/src/test/resources/trusted-test-root-certificates/TEST-PCA20.pem
@@ -0,0 +1,36 @@
+-----BEGIN CERTIFICATE-----
+MIIGVjCCBD6gAwIBAgIFAJhujJQwDQYJKoZIhvcNAQELBQAwNTELMAkGA1UEBhMC
+REUxETAPBgNVBAoTCFRFU1QtUEtJMRMwEQYDVQQDEwpURVNULVBDQTIwMB4XDTE5
+MTIwMTAwMDAwMFoXDTI5MTIzMTIzNTk1OVowNTELMAkGA1UEBhMCREUxETAPBgNV
+BAoTCFRFU1QtUEtJMRMwEQYDVQQDEwpURVNULVBDQTIwMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAoAo7xDpvHSqSOJGW1rtalhZayl0IZGAtmF1f7Ssv
+lq9DsJxEu6lRhTwGHPzPEXZ4EMdHwHGnw3Zv4XL4Uc/FcsBOzVKFb6D2WLWXoJ/9
+D6rHpG+iC9148JcYTPLIrBIfPKpLdC2vKqVubqSUvLZl8fjmME1elAuqwu6qDmel
+bTa5iO+fV0awZkx0KrlCA88a6amldCqFfeert/XKqsrk74ihVzaUiTCW9aKNBxuc
+QbKHhU1W8jgzpQi3x758dRtoDqChbPFkTLNoQhLP8pPa3MynbXUC0XfF7h63zQNp
+NBvqnUjBl5oTbimoUFLdh8Wo0Bs0ifzu6WC0fEkI7ZQVOBjHEvMvN+rqAecsG/Bv
+CDVLVK27T+HC3zAZcusKa6/X73Sa3uO1EySOG6jwSmjTctCTx4qDjJrZZqZEZgSm
+zQqWTyWyo5LCIx3cPce+kafAJqufasT/WZS5vQ/65fUt/tEzZUFG34Pl6sFhtfe+
+91adDlOYioLnPC8EcWcSDP4DRh8CbEEqu/oLEj/UhAmcJGWutHtNKmr59j/SO06L
+bZpSGgy4OU+aCiWn3N8S1wwBYpWqn0S1r876OQIofKdHshWPhg8/KXh/yjgx6a5/
+HMuKPQVH1FmFeWlnsbkpdMNPSDHM5LjjIwEm6dy2TwP35jSoYw/leIB4izaz6pEO
+MKUCAwEAAaOCAWswggFnMA8GA1UdEwEB/wQFMAMBAf8wPwYDVR0gBDgwNjA0Bgsr
+BgEEAbMBAQIBAzAlMCMGCCsGAQUFBwIBFhdodHRwczovL3d3dy5ic2kuYnVuZC5k
+ZTCBrAYDVR0fBIGkMIGhMFagVKBShlBsZGFwOi8vdGVzdC14NTAwLmJ1bmQuZGUv
+Q049VEVTVC1QQ0EyMCxPPVRFU1QtUEtJLEM9REU/Y2VydGlmaWNhdGVSZXZvY2F0
+aW9uTGlzdDBHoEWgQ4ZBaHR0cDovL3Rlc3QteDUwMC5idW5kLmRlL2NnaS1iaW4v
+c2hvd19hdHRyP2NuPVRFU1QtUENBMjAmYXR0cj1jcmwwDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBTYSvDyBHCCr6Ozgm4rlO4scqMswTA1BgNVHREELjAsgRFWLVBL
+SUBic2kuYnVuZC5kZYYXaHR0cHM6Ly93d3cuYnNpLmJ1bmQuZGUwDQYJKoZIhvcN
+AQELBQADggIBADK29j9Tkm6SjI0PNmYFbOl/8FsjVsN4pZ0g67z4Ro1egbldCbV9
+pst7PB9TSjaKUBClS9fJUU5izOpxj4LxSehpJeJZNs47sXuMkePPCQdKv7WmwvWL
+YY2wiMJ7qF4PyvtIqX6Wyy8y0nhuAb0KpO4jBG0kbuuxvt5oe6PAVLfvXiVJSIjl
+OmjxNV50ryVWb0/nEISvrOdAno9vY5jIAfBQQauCAy4XgMR/6uyEaB/aGcb5Qbc8
+HlDS8tqRGQklRJ4XX6mDU2w8tU2szHQoSJt41p6UyQt0BN0bLKtVmZr8RlsZERUk
+4m8x37VmoltNxgkUV6SARORNmqKPrvSgu/FgbKayJ/+8h0qEKhvhCQmbqsjlDxvA
+cv7jPelmEmNwKEdvToxpMzPpQKCvXelgxANDHPdVqnQpBeqb53VFr5oKCIfYK4Ka
+TPIzntmaLnS8JbM3Bb36tyCvh+HX5IcWCskRAmh10k5FmB4xBcz394gjJDYrOEqV
+euNduSFVLwxZq8K/0MC6gacrxytnfnChjBdd+7gE8TDbHjA2xd8mbHDC5c1VrrHx
+s9coPr+nSZP2dltg/OMCPRBuOXL/vwjfh7Wc6Rl4LBn+H1Ql/J52s3b1aukMiL3p
+SJOElvThgBKsPlf6ftwIANzr/v6m3iOt0ifNLVMsPpYM2c9nj8QcvFcu
+-----END CERTIFICATE-----