Traefik V2 SSL A+ in Ssllabs
Posted on
Untuk mendapatkan score a+ di SSL Labs ketika menggunakan traefik v2 sebagai ingress controller sangatlah mudah. Cukup membuat sebuah middleware dan sebuah TLSOption.
Pertama, buat sebuah middlewara object untuk traefik v2:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: security-header
spec:
headers:
frameDeny: true
sslRedirect: true
browserXssFilter: true
contentTypeNosniff: true
#HSTS
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 31536000
Kemudian buat sebuah TLSOption
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
name: mytlsoption
namespace: default
spec:
minVersion: VersionTLS12
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 # TLS 1.2
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 # TLS 1.2
- TLS_AES_256_GCM_SHA384 # TLS 1.3
- TLS_CHACHA20_POLY1305_SHA256 # TLS 1.3
curvePreferences:
- CurveP521
- CurveP384
sniStrict: true
Apply kedua object diatas dengan kubectl.
Selanjutnya edit ingressRoutes traefik:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: my.domain.co.id
namespace: belajar
annotations:
kubernetes.io/ingress.class: "traefik-dua"
spec:
entryPoints:
- web
routes:
- match: Host(`my.domain.co.id`)
kind: Rule
services:
- name: myapp-svc
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: my.domain.co.id-tls
namespace: belajar
annotations:
kubernetes.io/ingress.class: "traefik-dua"
spec:
entryPoints:
- websecure
routes:
- match: Host(`my.domain.co.id`)
kind: Rule
services:
- name: myapp-svc
port: 80
middlewares:
- name: security-header
namespace: default
tls:
certResolver: leprod
options:
name: mytlsoption
namespace: default
Perhatikan bagian spec.routes.middlewares.name dan spec.routes.middlewares.namespace pada object ingressRoutes my.domain.co.id-tls dan spec.tls.options.name dan spec.tls.options.namespace. Itu adalah nama dari middleware dan tlsoption yang dibuat tadi. Namespace disesuaikan dengan lokasi dari middleware dan tlsoption.
Cek skor di SSL Labs, pasti A+.
Cool~