Dokploy & Traefik 反代已有 SSL 的容器

最近,我将我的所有服务迁移到了 Dokploy 上运行,Dokploy 使用 Traefik 将 Docker 内的服务反代到服务器的外部端口上。

本来这个过程非常方便,只需要去图形化界面添加域名即可,但是此处 Traefik 默认是以 HTTP 协议回源,导致某些采用 HTTPS 协议的应用(比如我的 Krill,SSL 强开无法关闭)无法正常回源。

只需要加上这样一行代码即可。

- traefik.http.services.servicename.loadbalancer.server.scheme=https

对于 Compose 部署方式,将这一行加到 labels 中即可,如:

    labels:
      - traefik.http.services.rpki-infrastructure-krill*****-web.loadbalancer.server.scheme=https
      - traefik.http.services.rpki-infrastructure-krill*****-websecure.loadbalancer.server.scheme=https

这样即可

如果是 Application 部署的话,则需要到 Advanced > Traefik > Modify 这样修改

http:
  routers:
    rpki-infrastructure************:
      rule: Host(`rpki-infrastructure********。traefik.me`)
      service: rpki-infrastructure**********
      middlewares: []
      entryPoints:
        - web
  services:
    rpki-infrastructure***************:
      loadBalancer:
        servers:
          - url: http://rpki-infrastructure-***********:3000
+         # 加到这里
+         scheme: https
        passHostHeader: true

那么再进一步,如果是自签名证书呢,需要更多一步。

我们需要创建一个 serversTransports 来处理不安全状态,理论上对于 Application 来说 serversTransports 可以直接写在应用的 http 块中,Compose 也可以直接写在 labels 中但是为了方便及复用性考虑,我们将他添加到 Traefik File System 中。

点到 /etc/dokploy/traefik/dynamic/middlewares.yml ,点击 Unlock

http:
  middlewares:
    redirect-to-https:
      redirectScheme:
        scheme: https
        permanent: true
# 添加以下内容 
  serversTransports:
    insecure:
      insecureSkipVerify: true

然后,我们在服务中引用该 Transport。

      - traefik.http.services.rpki-infrastructure-krill**********.loadbalancer.serversTransport=insecure@file

使用 Compose 则添加这一部分,记得添加 @file,表明该 transport 来自的 Provider 是文件。

对于 Application 而言,只需要

http:
  routers:
    rpki-infrastructure************:
      rule: Host(`rpki-infrastructure********。traefik.me`)
      service: rpki-infrastructure**********
      middlewares: []
      entryPoints:
        - web
  services:
    rpki-infrastructure***************:
      loadBalancer:
        servers:
          - url: http://rpki-infrastructure-***********:3000
          scheme: https
        # 加到这里
        serversTransport: insecure
        # 这里不用加 @file 了,因为 Application 的配置文件直接就在 Traefik File System 里
        passHostHeader: true

Read more

APNIC Email Whois Update 教程(含SSO相关)

众所周知,APNIC 对于 End User 只提供了 Email Whois Update 方式,而这一更新方式非常难用,官方文档也比较含糊不清,包括最近将 Password 验证弃用,转为使用 SSO 验证(这一验证方式甚至没有在官方文档中提及)。 对于 Whois Update,总共可以分为三步 1.获取原本的 Whois 数据。 2.在原本的 Whois 数据上进行修改。 3.添加验证相关字段并发送邮件。 一、获取原有 Whois 数据 原有 Whois 数据是修改的模板,可以从 https://wq.apnic.net//static/search.html 获取。 得到如下数据。

Logo of Cloudflare

Cloudflare SaaS 实现 CNAME 接入 及 基于 GeoDNS 的分流解析

Intro Cloudflare 提供免费的 Anycast CDN 以及近乎无限的 DDoS 防护,但是除非 Enterprise 计划的用户才可以使用大陆节点,同时 Cloudflare 开放给免费用户的节点对于中国大陆而言往往线路优化不怎么好,由此便引申出了境内采用其他 CDN ,境外使用 Cloudflare 的方法,但是这种方法需要 CNAME 方式来。 而 Cloudflare SaaS 正包含自定义主机名的能力hu。 Prapare * 一个 Cloudflare 账户 * 两个域名,一个为服务所使用的域名,另外一个为托管在 Cloudflare 的域名 Concept * 回退域 即托管在 Cloudflare 的任意域名 * 回退源 即 SaaS 的源站,一个回退域只可以有一个回退源。(2025 修正:Cloudflare 允许一个回退域拥有多个源站,回退源作为默认源)