# AWS 自定义域名配置专题

本文适用于域名 DNS 托管在 AWS Route 53，或证书、分发链路使用 AWS Certificate Manager、CloudFront 的场景。

## 一、适用场景

如果商家的域名在 AWS Route 53 中管理，例如 `example.com`，并希望将 `shop.example.com`、`learn.example.com` 等二级域名绑定到 eLink，可参考本文配置 CNAME。

如果商家使用 AWS CloudFront 或 ACM 管理证书，也需要注意证书是否能导出并上传到 eLink。

## 二、在 Route 53 配置 CNAME

1. 登录 AWS Console。
2. 进入 Route 53。
3. 打开对应域名的 Hosted zone，例如 `example.com`。
4. 点击 Create record。
5. Record name 填写子域名前缀，例如绑定 `shop.example.com` 时填写 `shop`。
6. Record type 选择 CNAME。
7. Value 填写 eLink 后台展示的 CNAME 目标值。
8. TTL 使用默认值或按商家内部要求设置。
9. 保存记录后，等待 DNS 生效。

官方参考：

- [AWS Route 53 创建记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html)
- [AWS Route 53 CNAME 记录类型](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#CNAMEFormat)

## 三、AWS Certificate Manager 证书注意事项

AWS Certificate Manager（ACM）证书常用于 CloudFront、ALB 等 AWS 托管服务。

如果 eLink 后台要求上传证书和私钥，请确认 ACM 证书是否支持导出。不能导出私钥的证书不能上传到 eLink。

常见建议：

1. 如需上传到 eLink，请使用支持导出证书、私钥和证书链的公开 CA 证书。
2. 如果使用 ACM 公共证书，需要在申请证书时确认是否启用 export 选项。
3. 如果证书只绑定在 CloudFront、ALB 等 AWS 托管服务上，通常不能直接作为 eLink 上传证书使用。
4. 证书必须覆盖当前绑定域名，例如 `shop.example.com` 或同层级通配符 `*.example.com`。

官方参考：

- [AWS Certificate Manager DNS 验证](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)
- [AWS ACM exportable public certificates](https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html)
- [AWS ACM 导出公共证书](https://docs.aws.amazon.com/acm/latest/userguide/export-public-certificate.html)

## 四、CloudFront 场景说明

如果商家同时使用 CloudFront，需要确认：

1. CloudFront Alternate domain name 覆盖当前访问域名。
2. CloudFront 绑定的证书覆盖当前访问域名。
3. Route 53 的记录指向的是实际需要访问的服务。
4. 如果 eLink 后台提供了 CNAME 目标值，需按 eLink 后台值配置，不要误指向已有 CloudFront 分发。

官方参考：

- [AWS CloudFront 添加自定义域名 CNAME](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreatingCNAME.html)
- [AWS CloudFront 自定义域名和 HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-procedures.html)
- [AWS CloudFront 证书要求](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html)

## 五、常见问题

### 1. Route 53 已添加 CNAME，但 eLink 校验失败怎么办？

请检查：

1. Hosted zone 是否选对。
2. Record name 是否只填写子域名前缀，例如 `shop`。
3. Value 是否完整复制 eLink 后台提供的 CNAME 地址。
4. 同名记录是否存在 A、AAAA 或其他 CNAME。
5. DNS 是否还在生效中，可等待一段时间后重试。

### 2. ACM 证书能否直接上传到 eLink？

取决于证书是否支持导出私钥。不能导出私钥的 ACM 证书不能上传到 eLink，只适合绑定在 AWS 托管服务上使用。