diff --git a/Jenkinsfile b/Jenkinsfile
index 8020f96671328714bfb5d6c57ceedf40accca013..b0f1dcf2b36a789c9176b7a2215f161de1dd0e95 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 -Dmaven.wagon.http.retryHandler.count=3'
+                    sh 'mvn -s $MAVEN_SETTINGS clean install -DskipTests -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 57b6bd7bdea74fac6e6dd14ea9190159239f9fcb..89bed221f4ad864f318c6142721be59f7782b7b0 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
@@ -3,8 +3,11 @@ package de.ozgcloud.operator;
 import java.util.Objects;
 
 import org.apache.commons.collections.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import co.elastic.clients.elasticsearch._types.ElasticsearchException;
+import de.ozgcloud.operator.OzgCloudElasticsearchProperties.OzgCloudElasticsearchServerProperties;
 import de.ozgcloud.operator.PutRoleRequestData.IndicesPrivilegesData;
 import de.ozgcloud.operator.common.elasticsearch.ElasticsearchRemoteService;
 import de.ozgcloud.operator.common.kubernetes.KubernetesRemoteService;
@@ -22,11 +25,25 @@ public class OzgCloudElasticsearchService {
 
 	private final OzgCloudElasticsearchSecretHelper secretHelper;
 	private final OzgCloudElasticsearchProperties properties;
+	private final OzgCloudElasticsearchServerProperties serverProperties;
 
 	private final ElasticsearchRemoteService remoteService;
 
 	private final KubernetesRemoteService kubernetesService;
 
+	public void copyElasticCertificate(String namespace) {
+		try {
+			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");
+			LOG.info("{}: Create certificate secret", namespace);
+			createCredentialSecret(secretResource,namespace);
+	    } catch (ElasticsearchException e) {
+		throw new RuntimeException("can not copy/create elasticsearch ssl certificate");
+	   }
+	}
+
 	public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) {
 		try {
 			LOG.debug("{}: Get or create secret.", resource.getMetadata().getNamespace());
@@ -54,6 +71,7 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createIndexIfMissing(String name) throws Exception {
+		copyElasticCertificate(name);
 		LOG.debug("{}: Check elasticsearch index...", name);
 		if (!remoteService.existsIndex(name)) {
 			remoteService.createIndex(name);
@@ -61,6 +79,7 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createSecurityRoleIfMissing(String roleName) throws Exception {
+		copyElasticCertificate(roleName);
 		remoteService.createOrUpdateSecurityRole(buildPutRoleRequestData(roleName));
 	}
 
@@ -73,6 +92,7 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createSecurityUserIfMissing(String namespace, String password) throws Exception {
+		copyElasticCertificate(namespace);
 		remoteService.createOrUpdateSecurityUser(buildPutUserRequestData(namespace, password));
 	}
 
@@ -81,14 +101,17 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void deleteSecurityUserIfExists(String userName) throws Exception {
+		copyElasticCertificate(userName);
 		remoteService.deleteSecurityUser(userName);
 	}
 
 	public void deleteSecurityRoleIfExists(String roleName) throws Exception {
+		copyElasticCertificate(roleName);
 		remoteService.deleteSecurityRole(roleName);
 	}
 
 	public void deleteIndexIfExists(String indexName) throws Exception {
+		copyElasticCertificate(indexName);
 		LOG.debug("{}: Check delete elasticsearch index ...", indexName);
 		if (remoteService.existsIndex(indexName)) {
 			remoteService.deleteIndex(indexName);
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 387a3bcf89a7e0c960f662f120cef509b721f31b..1bb1f5ecbd69412886f4271ed5cffcdadecf0b7c 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
@@ -142,6 +142,7 @@ class OzgCloudElasticsearchServiceTest {
 		@SneakyThrows
 		@Test
 		void shouldCreateSecurityRoleIfMissing() {
+
 			doReturn(putRoleRequest).when(service).buildPutRoleRequestData(any());
 
 			service.createSecurityRoleIfMissing(NAMESPACE);