diff --git a/bayernid-proxy-impl/src/main/resources/application-local.yml b/bayernid-proxy-impl/src/main/resources/application-local.yml
index f048bc1e34b576c9d95d558300db721823dc58f5..45b76d40d06af3f1110aeb9695f2d91d58724d31 100644
--- a/bayernid-proxy-impl/src/main/resources/application-local.yml
+++ b/bayernid-proxy-impl/src/main/resources/application-local.yml
@@ -9,3 +9,5 @@ management:
 grpc:
   server:
     port: 9099
+    security:
+      enabled: false
\ No newline at end of file
diff --git a/bayernid-proxy-impl/src/main/resources/application.yml b/bayernid-proxy-impl/src/main/resources/application.yml
index 585def10fad6a8159ba09bfb0edc9e03331a503e..d8bddcd96b4cc50da04548672fb7c4682124b851 100644
--- a/bayernid-proxy-impl/src/main/resources/application.yml
+++ b/bayernid-proxy-impl/src/main/resources/application.yml
@@ -25,3 +25,10 @@ management:
     web:
       exposure:
         include: "*"
+
+grpc:
+  server:
+    security:
+      enabled: true
+      certificate-chain: file:/grpc-tls/tls.crt
+      private-key: file:/grpc-tls/tls.key
\ No newline at end of file
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index fa602a671a3282c8109f2f2cf671a02aea464be6..89923f7398d52a48fcf04bd168ab784626709b92 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -80,7 +80,10 @@ spec:
                 name: {{ required "ozgcloud.bayernid.certificateSecretName must be set" ((.Values.ozgcloud).bayernid).certificateSecretName }}
                 key: password
                 optional: false
-
+          {{- if .Values.disableGrpcTls }}
+          - name: grpc_server_security_enabled
+            value: false
+          {{- end }}
         image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}"
         imagePullPolicy: Always
         name: bayernid-proxy
@@ -140,7 +143,9 @@ spec:
             readOnly: true
           - name: temp-dir
             mountPath: "/tmp"
-      
+          - name: bayernid-proxy-grpc-tls-cert
+            mountPath: "/grpc-tls/"
+            readOnly: true
       volumes: 
         - name: bindings
           configMap:
@@ -149,6 +154,10 @@ spec:
           secret:
             secretName: {{ required "ozgcloud.bayernid.certificateSecretName must be set" ((.Values.ozgcloud).bayernid).certificateSecretName }}
             optional: false
+        - name: bayernid-proxy-grpc-tls-cert
+          secret:
+            secretName: bayernid-proxy-grpc-tls-certificate
+            optional: true
         - name: temp-dir
           emptyDir: {}
       dnsConfig: {}
diff --git a/src/main/helm/templates/grpc_certificate.yaml b/src/main/helm/templates/grpc_certificate.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..94943b038637c582e735426af31c27de51ec0a47
--- /dev/null
+++ b/src/main/helm/templates/grpc_certificate.yaml
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+{{- if not .Values.disableGrpcTls }}
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+  name: bayernid-proxy-grpc-tls-certificate
+  namespace: {{ .Release.Namespace }}
+spec:
+  secretName: bayernid-proxy-grpc-tls-cert
+  issuerRef:
+    name: {{ .Release.Namespace }}-ca-issuer
+    kind: Issuer
+  duration: 8760h0m0s # 1 Jahr
+  renewBefore: 5840h0m0s # 8 Monate
+  commonName: {{ .Release.Name }}
+  privateKey:
+    algorithm: RSA
+    encoding: PKCS8
+  dnsNames:
+    - "*.{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local"
+    - "{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local"
+    - "{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster"
+    - "{{ .Release.Name }}.{{ .Release.Namespace }}.svc"
+    - "{{ .Release.Name }}.{{ .Release.Namespace }}"
+    - "{{ .Release.Name }}"
+{{- end }}
\ No newline at end of file
diff --git a/src/test/helm/deployment_grpc_tls_test.yaml b/src/test/helm/deployment_grpc_tls_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..fab6810679aab9e1dd6114cd64a5f25fae5c822d
--- /dev/null
+++ b/src/test/helm/deployment_grpc_tls_test.yaml
@@ -0,0 +1,78 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: deployment grpc tls
+release:
+  name: bayernid-proxy
+  namespace: by-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud:
+    environment: test
+    bayernid:
+      server: "http://test"
+      certificateSecretName: "bayernidCertificat"
+tests:
+  - it: should have volume for grpc-tls-cert
+    asserts:
+      - contains:
+           path: spec.template.spec.volumes
+           content:
+              name: bayernid-proxy-grpc-tls-cert
+              secret:
+                 secretName: bayernid-proxy-grpc-tls-certificate
+                 optional: true
+  - it: should have volume mount for grpc-tls-cert certificate
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].volumeMounts
+          content:
+            name: bayernid-proxy-grpc-tls-cert
+            mountPath: "/grpc-tls/"
+            readOnly: true
+  - it: should have volume mount for grpc-tls-cert key
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].volumeMounts
+          content:
+            name: bayernid-proxy-grpc-tls-cert
+            mountPath: "/grpc-tls/"
+            readOnly: true
+  - it: should not contain grpc_server_security_enabled env
+    asserts:
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_server_security_enabled
+          any: true
+  - it: should contain grpc_server_security_enabled env
+    set:
+      disableGrpcTls: true
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_server_security_enabled
+            value: false
\ No newline at end of file
diff --git a/src/test/helm/grpc_certificate_test.yaml b/src/test/helm/grpc_certificate_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..723c35f7433e37a4e2fab2fc0fcfe2e956a2a23e
--- /dev/null
+++ b/src/test/helm/grpc_certificate_test.yaml
@@ -0,0 +1,113 @@
+#
+# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: grpc tls certificate
+release:
+  name: bayernid-proxy
+  namespace: by-helm-test
+templates:
+  - templates/grpc_certificate.yaml
+tests:
+  - it: should contains header data
+    asserts:
+      - isAPIVersion:
+          of: cert-manager.io/v1
+      - isKind:
+          of: Certificate
+  - it: should have metadata
+    asserts:
+      - equal:
+          path: metadata.name
+          value: bayernid-proxy-grpc-tls-certificate
+      - equal:
+          path: metadata.namespace
+          value: by-helm-test
+  - it: should have secretName
+    asserts:
+      - equal:
+          path: spec.secretName
+          value: bayernid-proxy-grpc-tls-cert
+  - it: should have issuerRef
+    asserts:
+      - equal:
+          path: spec.issuerRef.name
+          value: by-helm-test-ca-issuer
+      - equal:
+          path: spec.issuerRef.kind
+          value: Issuer
+  - it: should have duration
+    asserts:
+      - equal:
+          path: spec.duration
+          value: 8760h0m0s
+  - it: should have renewBefore
+    asserts:
+      - equal:
+          path: spec.renewBefore
+          value: 5840h0m0s
+  - it: should have commonName
+    asserts:
+      - equal:
+          path: spec.commonName
+          value: "bayernid-proxy"
+
+  - it: should privateKey algorith
+    asserts:
+      - equal:
+          path: spec.privateKey.algorithm
+          value: RSA
+
+  - it: should privateKey encoding
+    asserts:
+      - equal:
+          path: spec.privateKey.encoding
+          value: PKCS8
+
+  - it: should have dnsNames
+    asserts:
+     - equal:
+          path: spec.dnsNames[0]
+          value: "*.bayernid-proxy.by-helm-test.svc.cluster.local"
+     - equal:
+          path: spec.dnsNames[1]
+          value: "bayernid-proxy.by-helm-test.svc.cluster.local"
+     - equal:
+          path: spec.dnsNames[2]
+          value: "bayernid-proxy.by-helm-test.svc.cluster"
+     - equal:
+          path: spec.dnsNames[3]
+          value: "bayernid-proxy.by-helm-test.svc"
+     - equal:
+          path: spec.dnsNames[4]
+          value: "bayernid-proxy.by-helm-test"
+     - equal:
+          path: spec.dnsNames[5]
+          value: "bayernid-proxy"
+
+  - it: Secret should not exist
+    set:
+      disableGrpcTls: true
+    asserts:
+      - hasDocuments:
+          count: 0
\ No newline at end of file