403 禁止 API 具有自定义域附加域的网关
403 Forbidden on API Gateway with Custom domain's aditional domain
我有一个 REST API 在 API 网关后面服务。
我有一个 Route53 托管区域:myAWSHostedDomain.myCompanyDomain.com
我还在 ACM 中创建了一个证书:myApp.myAWSHostedDomain.myCompanyDomain.com
证书有一个额外的域:
myApp.myCompanyDomain.com
证书已颁发,没有任何问题,两个域都已验证。
在公司非 AWS 托管区域 myCompanyDomain.com
中,我有一个 CNAME 指向 myApp
到 myApp.myAWSHostedDomain.myCompanyDomain.com
。它解决了。
我已经使用该证书为 API 网关配置了自定义域。显示的名称是 myApp.myAWSHostedDomain.myCompanyDomain.com
。这很好,因为它是该证书的主域。
我遇到的问题是对 myApp.myCompanyDomain.com
发出的所有请求都因 403 Forbidden 错误而失败,而对 myApp.myAWSHostedDomain.myCompanyDomain.com
的那些相同请求有效正好。应用程序代码与它无关,对 favicon.ico 的请求行为相同。
API 网关端点配置为区域。
难道APIGateway的自定义域只取证书中的主域,对附加域不起作用?有办法解决这个问题吗?
因此,问题是请求失败并出现 403 禁止错误,因为 API 网关无法设置正确的主机 header,这是请求成功所必需的。
如果我这样做:
curl https://myApp.myCompanyDomain.com/favicon.ico -H "Host:myApp.myAWSHostedDomain.myCompanyDomain.com"
然后,它起作用了。
因此,这里的选项如下:
- 在 Route53 中为
myApp.myCompanyDomain.com
创建一条 DNS 记录。
- 在调用 API 时,将主机 header 添加到请求中,并将值设置为 DNS 记录的值。
- 创建一个新的 API 网关,其中主要自定义域与 API 网关中的域相对应:
myApp.myCompanyDomain.com
工作而不是 myApp.myAWSHostedDomain.myCompanyDomain.com work
。
我有一个 REST API 在 API 网关后面服务。
我有一个 Route53 托管区域:myAWSHostedDomain.myCompanyDomain.com
我还在 ACM 中创建了一个证书:myApp.myAWSHostedDomain.myCompanyDomain.com
证书有一个额外的域:
myApp.myCompanyDomain.com
证书已颁发,没有任何问题,两个域都已验证。
在公司非 AWS 托管区域 myCompanyDomain.com
中,我有一个 CNAME 指向 myApp
到 myApp.myAWSHostedDomain.myCompanyDomain.com
。它解决了。
我已经使用该证书为 API 网关配置了自定义域。显示的名称是 myApp.myAWSHostedDomain.myCompanyDomain.com
。这很好,因为它是该证书的主域。
我遇到的问题是对 myApp.myCompanyDomain.com
发出的所有请求都因 403 Forbidden 错误而失败,而对 myApp.myAWSHostedDomain.myCompanyDomain.com
的那些相同请求有效正好。应用程序代码与它无关,对 favicon.ico 的请求行为相同。
API 网关端点配置为区域。
难道APIGateway的自定义域只取证书中的主域,对附加域不起作用?有办法解决这个问题吗?
因此,问题是请求失败并出现 403 禁止错误,因为 API 网关无法设置正确的主机 header,这是请求成功所必需的。
如果我这样做:
curl https://myApp.myCompanyDomain.com/favicon.ico -H "Host:myApp.myAWSHostedDomain.myCompanyDomain.com"
然后,它起作用了。
因此,这里的选项如下:
- 在 Route53 中为
myApp.myCompanyDomain.com
创建一条 DNS 记录。 - 在调用 API 时,将主机 header 添加到请求中,并将值设置为 DNS 记录的值。
- 创建一个新的 API 网关,其中主要自定义域与 API 网关中的域相对应:
myApp.myCompanyDomain.com
工作而不是myApp.myAWSHostedDomain.myCompanyDomain.com work
。