diff --git a/common/templates/_helpers.tpl b/common/templates/_helpers.tpl
index e54df5ed3ae61e30512f7950d1950b7233a21e6d..21964133729f477dfc64081297906a05bdfdafc8 100644
--- a/common/templates/_helpers.tpl
+++ b/common/templates/_helpers.tpl
@@ -112,3 +112,27 @@ TLSStore
 - secretName: {{ $secretName }}
 {{- end }}
 {{- end }}
+
+{{/*
+Middlewares
+*/}}
+
+{{/*
+RedirectScheme
+*/}}
+
+{{- define "common.traefik.middlewares.redirectscheme.variables.spec" -}}
+{{- $redirectScheme := dict }}
+{{- $scheme := "https" }}
+{{- $permanent := true }}
+{{- if .Values.scheme }}
+{{- $scheme = .Values.scheme }}
+{{- end }}
+{{- if hasKey .Values "permanent" }}
+{{- $permanent = .Values.permanent }}
+{{- end }}
+{{- $redirectScheme := merge $redirectScheme (dict "scheme" $scheme) }}
+{{- $redirectScheme := merge $redirectScheme (dict "permanent" $permanent) }}
+{{- $spec := dict "redirectScheme" $redirectScheme }}
+{{- toYaml $spec }}
+{{- end }}
diff --git a/common/templates/traefik/middlewares/_redirectscheme.tpl b/common/templates/traefik/middlewares/_redirectscheme.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..a0f6729027152f1210ca8950e57d4c94ceca5b6e
--- /dev/null
+++ b/common/templates/traefik/middlewares/_redirectscheme.tpl
@@ -0,0 +1,5 @@
+# https://doc.traefik.io/traefik/middlewares/overview/
+{{- define "common.traefik.middlewares.redirectscheme" }}
+{{ include "common.traefik.middleware" (merge $ (dict "spec" (include "common.traefik.middlewares.redirectscheme.variables.spec" . | fromYaml))) }}
+---
+{{- end }}