2 min read | by Jordi Prats
When using the Traefik ingress controller there are several ways of redirecting HTTP traffic to HTTPS, one of the ways is using IngressRoute (Traefik 2)
If we want to redirect traffic for a specific domain we can configure a rule for that domain as follows:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: website-http-to-https
spec:
entryPoints:
- web
routes:
- match: Host(`pet2cattle.com`)
priority: 1000
kind: Rule
services:
- kind: TraefikService
name: noop@internal
middlewares:
- name: website-http-to-https
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: website-http-to-https
spec:
redirectScheme:
scheme: https
permanent: true
On the other hand, if we want to redirect it globally for all the Ingress that we have defined, we can still create an IngressRoute matching all the possible URLs (for example, all of them are going to have / as a path prefix)
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: global-http-to-https
spec:
entryPoints:
- web
routes:
- match: PathPrefix(`/`)
priority: 1000
kind: Rule
services:
- kind: TraefikService
name: noop@internal
middlewares:
- name: global-http-to-https
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: global-http-to-https
spec:
redirectScheme:
scheme: https
permanent: true
To redirect HTTP to HTTPS globally there are several ways like set it on the helm chart, depending on the environment one or the other will make more sense.
Posted on 07/10/2022