You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik未使用指定证书用于OpenConnect VPN的配置问询

解决方案

要让vpn.example.tld使用指定的自定义证书,同时其他域名保留Let's Encrypt证书,需要通过**TLS存储(TLS Store)**实现路由与证书的绑定,具体配置如下:

1. 调整Traefik动态配置文件(rules.yml)

修改文件提供者配置,创建独立的TLS存储用于VPN服务,默认存储留给Let's Encrypt证书:

http:
  routers:
    router-vpn:
      entryPoints:
        - websecure
      rule: Host(`vpn.example.tld`)
      service: service-vpn
      # 给VPN路由指定专属的TLS存储
      tls:
        store: vpn-store

  services:
    service-vpn:
      loadBalancer:
        servers:
        - url: "https://ocserver:3334"

tls:
  # 定义两个TLS存储
  stores:
    # 默认存储:自动存放Let's Encrypt生成的证书
    default: {}
    # VPN专属存储:使用你指定的自定义证书
    vpn-store:
      certificates:
        - certFile: /etc/traefik/log/certs/cert.pem
          keyFile: /etc/traefik/log/certs/key.pem
  # 全局注册自定义证书(确保Traefik能识别该证书)
  certificates:
    - certFile: /etc/traefik/log/certs/cert.pem
      keyFile: /etc/traefik/log/certs/key.pem

2. 保持原有Docker Compose配置不变

你的Traefik容器静态配置(docker-compose.yml)无需修改,其中的certificatesresolvers.letsencrypt会自动将生成的证书存入default TLS存储,其他路由(如whoami.example.tld)通过tls.certresolver=letsencrypt继续使用Let's Encrypt证书。

关键原理说明

  • Traefik的TLS存储允许为不同路由分配不同的证书集合:
    • default存储:自动管理Let's Encrypt通过ACME生成的证书,所有未指定专属存储的路由默认使用该存储。
    • vpn-store存储:仅包含你指定的VPN证书,通过router-vpn的tls.store: vpn-store绑定,确保该域名使用自定义证书。
  • 此配置让Traefik在处理vpn.example.tld请求时使用指定证书,同时不影响其他域名的Let's Encrypt证书使用,匹配OpenConnect客户端与服务器的证书要求。

内容的提问来源于stack exchange,提问作者Konstantin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:00:58