AWS Certificate Manager验证问题:重复CNAME无法添加至GoDaddy
解决GoDaddy DNS无法添加同名CNAME的SSL验证问题
核心原因
GoDaddy的DNS web管理界面限制了同名记录的添加,但其实它的DNS服务器本身支持多条同名CNAME共存,只是前端做了限制;另外部分CA会给主域名和通配符域名分别生成验证记录,导致名称冲突。
可行解决方案
1. 要求CA合并验证记录
大部分常用CA(比如Let's Encrypt、ZeroSSL)支持单条CNAME同时验证主域名和通配符。你可以回到CA的验证页面,查找是否有“合并多域名验证”的选项,或者直接联系CA支持,让他们生成一条覆盖domain.com和*.domain.com的统一CNAME验证记录,这样就不会有同名冲突了。
2. 切换到HTTP-01验证
放弃DNS-01验证,改用HTTP-01方式,步骤很简单:
- 在你的主域名web服务器根目录下创建
/.well-known/acme-challenge/文件夹 - 将CA提供的两个验证文本文件(分别对应主域名和通配符)上传到这个文件夹
- 确保访问
http://domain.com/.well-known/acme-challenge/[验证文件名]和http://any-subdomain.domain.com/.well-known/acme-challenge/[验证文件名]都能返回正确的文本(通配符的验证会自动指向主服务器的对应文件) - 触发CA验证,通过后就能拿到包含两个FQDN的证书
3. 用GoDaddy API强制添加同名CNAME
GoDaddy的web界面不让加,但API可以绕过这个限制:
- 去GoDaddy开发者平台生成API密钥和密钥密码(需要绑定你的域名账号)
- 用curl或者Postman发送PATCH请求添加两条记录:
curl -X PATCH "https://api.godaddy.com/v1/domains/domain.com/records" \ -H "Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET" \ -H "Content-Type: application/json" \ -d '[ { "type": "CNAME", "name": "_acme-challenge", "data": "第一个CA给的验证值", "ttl": 3600 }, { "type": "CNAME", "name": "_acme-challenge", "data": "第二个CA给的验证值", "ttl": 3600 } ]'
执行后,GoDaddy的DNS会同时存在两条同名CNAME,满足CA的验证要求。
4. 拆分证书后合并
如果上面的方法都不想用,可以拆分申请再合并:
- 先单独申请
*.domain.com的证书,用对应的CNAME验证 - 再单独申请
domain.com的证书,用HTTP-01验证 - 最后用SSL工具(比如Certbot的
certbot certonly --expand命令)把两个证书合并成一个包含两个FQDN的证书
内容的提问来源于stack exchange,提问作者Antonio Turner
相关产品推荐
相关产品推荐

