基于 Traefik 的激进 TLS 安全配置实践

2022-04-22 14:26:00 浏览数 (1)

前言

Traefik[1]是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。

Traefik可以与现有的多种基础设施组件(Docker、Swarm模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

今天我们基于 Traefik on K8S 来详细说明如何对 TLS 安全进行「激进」配置。

环境基本信息

1.K8S 集群;

2.域名:ewhisper.cn(由 DNSPod 进行 DNS 管理,已指向 K8S 集群的 Traefik Ingress 的 LoadBalancer 公网地址)

3.使用 cert-manager 自动管理的证书 *.ewhisper.cn 作为 Traefik 的默认证书;cert-manager 位于 cert-manager NameSpace 下

4.Traefik 2.4.8 安装于 K8S 集群的 kube-system NameSpace 下,且使用 CRDs 进行配置。

「激进」的 TLS 配置

全站受信证书 HTTPS。具体如下:

1.全站 HTTPS 443 端口配置;

2.证书来自 Let's Encrypt(由 cert-manager 自动申请)(⚡激进,生产慎用!)

3.监听 HTTP 请求,并重定向到 HTTPS;(⚡激进,生产慎用!)

4.启用 HSTS 功能(⚡激进,生产慎用!)

5.TLS 版本限定在 TLS 1.3(⚡激进,生产慎用!)

配置实践

TLS 版本限定在 TLS 1.3

使用 Traefik 的 CRD - TLSOption[2] 配置如下:

代码语言:javascript复制
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
  name: default
  namespace: kube-system

spec:
  minVersion: VersionTLS13

0 人点赞