diff --git a/Jenkinsfile b/Jenkinsfile
index b0f1dcf2b36a789c9176b7a2215f161de1dd0e95..8020f96671328714bfb5d6c57ceedf40accca013 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -48,7 +48,7 @@ pipeline {
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh 'mvn --version'
-                    sh 'mvn -s $MAVEN_SETTINGS clean install -DskipTests -Dmaven.wagon.http.retryHandler.count=3'
+                    sh 'mvn -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3'
                         
                     script {
                       	try {
diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
index 89bed221f4ad864f318c6142721be59f7782b7b0..44fed4056ab114b07c919b9639062209a997d35b 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
@@ -25,6 +25,7 @@ public class OzgCloudElasticsearchService {
 
 	private final OzgCloudElasticsearchSecretHelper secretHelper;
 	private final OzgCloudElasticsearchProperties properties;
+
 	private final OzgCloudElasticsearchServerProperties serverProperties;
 
 	private final ElasticsearchRemoteService remoteService;
@@ -36,7 +37,7 @@ public class OzgCloudElasticsearchService {
 			LOG.debug("Copy elasticseaerch ssl certificate from namespace: {}" , serverProperties.getCertificateNamespace());
 			LOG.debug("Copy elasticseaerch ssl certificate secret: {}" , serverProperties.getCertificateSecretName());
 			
-		    var secretResource = kubernetesService.getSecretResource(serverProperties.getCertificateNamespace(), "ozg-search-cluster-es-http-ca-internal");
+		    var secretResource = kubernetesService.getSecretResource(serverProperties.getCertificateNamespace(), serverProperties.getCertificateSecretName());
 			LOG.info("{}: Create certificate secret", namespace);
 			createCredentialSecret(secretResource,namespace);
 	    } catch (ElasticsearchException e) {
diff --git a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java
index 1bb1f5ecbd69412886f4271ed5cffcdadecf0b7c..6a890c7a4f3cdd0357ef6211c2575014bb392db4 100644
--- a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java
+++ b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java
@@ -31,6 +31,12 @@ class OzgCloudElasticsearchServiceTest {
 	@Spy
 	@InjectMocks
 	private OzgCloudElasticsearchService service;
+	@Mock
+	private OzgCloudElasticsearchServerProperties serverProperties;
+	@Mock
+	private Resource<Secret> secretResource;
+	private final Secret secret = SecretTestFactory.create();
+
 	@Mock
 	private ElasticsearchRemoteService remoteService;
 	@Mock
@@ -40,6 +46,8 @@ class OzgCloudElasticsearchServiceTest {
 	@Mock
 	private KubernetesRemoteService kubernetesService;
 
+	
+
 	@DisplayName("Get or create secret")
 	@Nested
 	class TestGetOrCreateSecret {
@@ -48,10 +56,10 @@ class OzgCloudElasticsearchServiceTest {
 		private Context<OzgCloudElasticsearchCustomResource> context;
 		@Mock
 		private ResourceAdapter<Secret> resourceAdapter;
-		@Mock
-		private Resource<Secret> secretResource;
+		//@Mock
+		//private Resource<Secret> secretResource;
 
-		private final Secret secret = SecretTestFactory.create();
+		
 
 		private final OzgCloudElasticsearchCustomResource resource = ElasticsearchCustomResourceTestFactory.create();
 
@@ -117,6 +125,9 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldCheckIfIndexExists() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+			when(serverProperties.getCertificateNamespace()).thenReturn(NAMESPACE);
+
 			service.createIndexIfMissing(NAMESPACE);
 
 			verify(remoteService).existsIndex(NAMESPACE);
@@ -125,12 +136,24 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldCreateIndexIfMissing() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+			when(serverProperties.getCertificateNamespace()).thenReturn(NAMESPACE);
 			when(remoteService.existsIndex(any())).thenReturn(false);
 
 			service.createIndexIfMissing(NAMESPACE);
 
 			verify(remoteService).createIndex(NAMESPACE);
 		}
+
+        @SneakyThrows
+		@Test
+		void shouldCallCopyElasticCertificate() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+
+			service.createIndexIfMissing(NAMESPACE);
+
+			verify(service).copyElasticCertificate(NAMESPACE);
+		}
 	}
 
 	@DisplayName("Check security role if missing")
@@ -138,18 +161,30 @@ class OzgCloudElasticsearchServiceTest {
 	class TestCheckSecurityRoleIfMissing {
 
 		private final PutRoleRequestData putRoleRequest = PutRoleRequestDataTestFactory.create();
-
+		
 		@SneakyThrows
 		@Test
 		void shouldCreateSecurityRoleIfMissing() {
 
 			doReturn(putRoleRequest).when(service).buildPutRoleRequestData(any());
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
 
 			service.createSecurityRoleIfMissing(NAMESPACE);
 
 			verify(remoteService).createOrUpdateSecurityRole(putRoleRequest);
 		}
 
+		@SneakyThrows
+		@Test
+		void shouldCallCopyElasticCertificate() {
+			
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+
+			service.createSecurityRoleIfMissing(NAMESPACE);
+
+			verify(service).copyElasticCertificate(NAMESPACE);
+		}
+
 		@DisplayName("create put role request data")
 		@Nested
 		class TestCreatePutRoleRequestData {
@@ -196,12 +231,23 @@ class OzgCloudElasticsearchServiceTest {
 		@Test
 		void shouldCreateSecurityUserIfMissing() {
 			doReturn(putUserRequestData).when(service).buildPutUserRequestData(any(), any());
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
 
 			service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD);
 
 			verify(remoteService).createOrUpdateSecurityUser(putUserRequestData);
 		}
 
+		@SneakyThrows
+		@Test
+		void shouldCallCopyElasticCertificate() {
+		    when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+			
+			service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD);
+
+			verify(service).copyElasticCertificate(NAMESPACE);
+		}
+
 		@DisplayName("create put user request data")
 		@Nested
 		class TestCreatePutUserRequestData {
@@ -240,10 +286,22 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldDeleteSecurityUserIfExists() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+
 			service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME);
 
 			verify(remoteService).deleteSecurityUser(PutUserRequestDataTestFactory.USERNAME);
 		}
+
+		@SneakyThrows
+		@Test
+		void shouldCallCopyElasticCertificate() {
+	        when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+
+			service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME);
+
+			verify(service).copyElasticCertificate(PutUserRequestDataTestFactory.USERNAME);
+		}
 	}
 
 	@DisplayName("Delete security role if exists")
@@ -253,10 +311,21 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldDeleteSecurityRoleIfExists() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
 			service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME);
 
 			verify(remoteService).deleteSecurityRole(PutRoleRequestDataTestFactory.NAME);
 		}
+
+		@SneakyThrows
+		@Test
+		void shouldCallCopyElasticCertificate() {
+		    when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+			
+			service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME);
+
+			verify(service).copyElasticCertificate(PutRoleRequestDataTestFactory.NAME);
+		}
 	}
 
 	@DisplayName("Delete index if exists")
@@ -268,6 +337,8 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldCheckIfIndexExists() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
+
 			service.deleteIndexIfExists(INDEX_NAME);
 
 			verify(remoteService).existsIndex(INDEX_NAME);
@@ -276,6 +347,7 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldDeleteIndexIfExists() {
+			when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource);
 			when(remoteService.existsIndex(any())).thenReturn(true);
 
 			service.deleteIndexIfExists(INDEX_NAME);