在 Traefik 中使用自定义证书

13 min read

Traefik 是一个现代的反向代理和负载均衡器,它可以自动发现并管理应用程序中的服务。在 Traefik 中使用自定义证书,你需要在配置文件中指定证书文件的位置,并设置相应的 TLS 选项。以下是一个使用自定义证书的示例配置:

  1. 准备你的自定义证书文件,通常包括一个私钥文件(如 mydomain.key)和一个证书文件(如 mydomain.crt)。

  2. 创建一个 Traefik 配置文件(例如 traefik.yml),并在其中添加如下内容:

entryPoints:
  websecure:
    address: ":443"

tls:
  certificates:
    - certFile: "/path/to/mydomain.crt"
      keyFile: "/path/to/mydomain.key"

providers:
  file:
    filename: "/path/to/dynamic.yml"

在这个配置中,我们定义了一个名为 websecure 的 entryPoint,它监听 443 端口。然后,我们在 tls.certificates 下指定了自定义证书文件的路径。

  1. 创建一个动态配置文件(例如 dynamic.yml),并在其中添加如下内容:
http:
  routers:
    my-app:
      rule: "Host(`mydomain.com`)"
      service: my-app-service
      tls: {}

  services:
    my-app-service:
      loadBalancer:
        servers:
          - url: "http://your-backend-service:80"

在这个配置中,我们定义了一个名为 my-app 的 router,当请求的主机名为 mydomain.com 时,会将请求转发到名为 my-app-service 的服务。并且,我们通过设置 tls: {} 开启了 TLS。

  1. 启动 Traefik,并指定配置文件的路径:
./traefik --configFile=/path/to/traefik.yml

现在,Traefik 应该使用你提供的自定义证书为 mydomain.com 提供 HTTPS 服务。请注意,这个示例仅适用于单个域名。如果你需要为多个域名配置自定义证书,可以在 tls.certificates 下添加更多的证书。