如何将GoDaddy子域名配置到AWS API Gateway?
如何将GoDaddy子域名配置到AWS API Gateway?
看起来你已经走对了大半流程,但还差几个关键步骤没完成,我来帮你梳理清楚,解决证书不匹配和403的问题:
先复盘下你之前的问题根源
你一开始把GoDaddy的CNAME直接指向了API Gateway的阶段URL,这个URL用的是AWS默认的证书(比如xxx.execute-api.us-east-1.amazonaws.com这类),和你的自定义域名api.dev.mycompany.com完全不匹配,所以Postman会提示证书域名不匹配,API Gateway也会因为Host头不符合要求返回403,这部分你判断的是对的。
接下来补全剩下的关键操作
给自定义域名添加API阶段映射
- 进入AWS API Gateway控制台,找到你刚创建的
api.dev.mycompany.com自定义域名 - 切换到「API映射」标签页,点击「添加API映射」
- 选择你的目标API,再选择对应的阶段(比如你要的
v1),路径填/就可以,这样访问api.dev.mycompany.com就会直接映射到API的v1阶段
- 进入AWS API Gateway控制台,找到你刚创建的
获取自定义域名对应的CloudFront域名
- 在自定义域名的详情页面,你会看到一个「域名名称」,格式类似
d123456abcdef.cloudfront.net,这个才是你要在GoDaddy配置CNAME的目标值,不是之前的API阶段URL
- 在自定义域名的详情页面,你会看到一个「域名名称」,格式类似
更新GoDaddy的CNAME记录
- 删掉之前指向旧API URL的CNAME记录
- 新建一条CNAME:名称填
api.dev,值填上面拿到的CloudFront域名(不需要加https://)
等待DNS生效并测试
- DNS解析生效通常需要10-30分钟,有的时候可能更久,你可以用
nslookup api.dev.mycompany.com命令确认解析是否已经指向那个CloudFront域名 - 生效后再用Postman测试你的API,应该就能正常访问了
- DNS解析生效通常需要10-30分钟,有的时候可能更久,你可以用
额外注意点
- 确保你的AWS证书是在**us-east-1(弗吉尼亚北部)**区域创建的,因为API Gateway自定义域名绑定的CloudFront服务默认使用这个区域的证书,其他区域的证书无法关联
- 如果之后还是有问题,可以检查API Gateway的访问日志,看看具体的错误原因,比如阶段映射是否配置正确
备注:内容来源于stack exchange,提问作者rams
相关产品推荐
相关产品推荐

