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

如何从Traefik+Let’s Encrypt获取domain.crt/key/ca格式的SSL证书?

从Traefik acme.json获取EMQX/MySQL所需TLS证书文件

第一步:从acme.json提取并解码证书内容

Traefik的acme.json以JSON格式存储Base64编码的证书,先定位到对应通配符域名*.calderasinecolma.com的条目,提取以下字段并解码:

可以用jq工具快速处理(替换为你的acme.json实际路径):

# 生成domain.key(对应服务器私钥)
jq -r '.Certificates[] | select(.domain.main == "*.calderasinecolma.com") | .key' /etc/traefik/acme.json | base64 -d > domain.key

# 生成domain.crt(对应服务器证书)
jq -r '.Certificates[] | select(.domain.main == "*.calderasinecolma.com") | .certificate' /etc/traefik/acme.json | base64 -d > domain.crt

# 生成domain.ca(对应CA证书链)
jq -r '.Certificates[] | select(.domain.main == "*.calderasinecolma.com") | .chain' /etc/traefik/acme.json | base64 -d > domain.ca

如果没有jq,可直接打开acme.json,手动复制对应字段的Base64内容,用以下命令解码:

echo "复制的Base64内容" | base64 -d > 目标文件名

第二步:明确文件对应关系

  • domain.key:对应Traefik导出的privkey.pem,是服务器的私有密钥,需妥善保管
  • domain.crt:对应Traefik的cert.pem,仅包含你的域名证书内容
  • domain.ca:对应Traefik的chain.pem,是签发域名证书的CA机构中间证书链,用于客户端验证服务器证书合法性

第三步:验证证书有效性

生成文件后,用openssl命令验证:

# 验证私钥与证书匹配(两个输出哈希值需一致)
openssl x509 -noout -modulus -in domain.crt | openssl md5
openssl rsa -noout -modulus -in domain.key | openssl md5

# 验证CA链有效性(输出应为"domain.crt: OK")
openssl verify -CAfile domain.ca domain.crt

补充说明

Let's Encrypt的根CA证书通常已预装在多数操作系统和客户端中,因此仅用中间CA组成的chain.pem作为domain.ca即可满足验证需求,无需额外添加根CA证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:18