Traefik 中 dns01 自动签发之后会删除 CNAME 记录
id: 01KC6A5BVR05K5ZZAZKAERKH3Y
Traefik 底层使用的是 lego 库来处理 ACME (Let's Encrypt) 协议。在标准的 DNS-01 验证流程中,Traefik 会严格遵循 "创建 -> 验证 -> 清理" 的生命周期。所以如果有 _acme-challenge 之类的 dns 记录存在,除非正在签发过程中,否则是可以删除掉的。
签发流程:LIVE EDITOR
flowchart TD Start["开始 DNS-01 挑战"] Start --> GetInfo["获取挑战信息<br/>GetChallengeInfo()"] GetInfo --> CNAMECheck{"检查 CNAME"} CNAMECheck -->|有 CNAME| FollowCNAME["跟随 CNAME 链<br/>getChallengeFQDN()"] CNAMECheck -->|无 CNAME| UseFQDN["使用原始 FQDN"] FollowCNAME --> EffectiveFQDN["获得 EffectiveFQDN"] UseFQDN --> EffectiveFQDN EffectiveFQDN --> Present["创建 TXT 记录<br/>Present()"] Present --> ProviderCheck{"DNS 提供商类型"} ProviderCheck -->|标准提供商| StandardProvider["标准 DNS 提供商<br/>直接创建 TXT 记录"] ProviderCheck -->|ACME-DNS| ACMEDNSProvider["ACME-DNS 提供商"] ACMEDNSProvider --> AccountCheck{"检查账户"} AccountCheck -->|账户存在| UpdateTXT["更新 TXT 记录"] AccountCheck -->|账户不存在| CreateAccount["创建新账户"] CreateAccount --> CNAMERequired["返回 ErrCNAMERequired<br/>需要手动创建 CNAME"] CNAMERequired --> ManualCNAME["手动创建 CNAME 记录"] ManualCNAME --> UpdateTXT StandardProvider --> Propagation["等待 DNS 传播"] UpdateTXT --> Propagation Propagation --> Polling["轮询检查<br/>wait.For()"] Polling --> Validate{"验证成功?"} Validate -->|是| CertIssued["证书签发成功"] Validate -->|否| Timeout{"超时?"} Timeout -->|是| Error["签发失败"] Timeout -->|否| Polling CertIssued --> Cleanup["清理 DNS 记录<br/>CleanUp()"] Error --> Cleanup Cleanup --> DeleteTXT["删除 TXT 记录"] DeleteTXT --> End["流程结束"] %% 样式 classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px classDef process fill:#e1f5fe,stroke:#01579b,stroke-width:2px classDef decision fill:#fff3e0,stroke:#e65100,stroke-width:2px classDef error fill:#ffebee,stroke:#c62828,stroke-width:2px classDef success fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px class GetInfo,FollowCNAME,UseFQDN,EffectiveFQDN,Present,StandardProvider,UpdateTXT,Propagation,Polling,Cleanup,DeleteTXT process class CNAMECheck,ProviderCheck,AccountCheck,Validate,Timeout decision class CNAMERequired,ManualCNAME,Error error class CertIssued,End successRendering diagram...