amazon-web-services - 403 Forbidden on API Gateway with Custom domain 附加域

标签 amazon-web-services api ssl dns gateway

我在 API Gateway 后面有一个 REST API 服务。
我有一个 Route53 托管区域:myAWSHostedDomain.myCompanyDomain.com我还在 ACM 中创建了一个证书:myApp.myAWSHostedDomain.myCompanyDomain.com该证书有一个附加域:myApp.myCompanyDomain.com证书已签发,没有任何问题,两个域均已验证。
在公司非 AWS 托管区域 myCompanyDomain.com ,我有一个 CNAME 指向 myAppmyApp.myAWSHostedDomain.myCompanyDomain.com .它解决了。
我已经使用该证书为该 API 网关配置了一个自定义域。显示的名称是myApp.myAWSHostedDomain.myCompanyDomain.com .这很好,因为它是该证书的主要域。
我遇到的问题是对 myApp.myCompanyDomain.com 的所有请求以 失败403禁止错误,而在 myApp.myAWSHostedDomain.myCompanyDomain.com 上的相同请求工作得很好。应用程序代码与它无关,对 favicon.ico 的请求的行为方式相同。
API 网关端点配置为 地区 一。
会不会是 API Gateway 的自定义域只从证书中获取主域而不能与其他域一起使用?有没有办法来解决这个问题?

最佳答案

因此,问题在于请求失败并出现 403 禁止错误,因为 API Gateway 无法设置正确的 Host header ,这是请求成功所必需的。
如果我做:

curl https://myApp.myCompanyDomain.com/favicon.ico -H "Host:myApp.myAWSHostedDomain.myCompanyDomain.com"
然后,它起作用了。
因此,这里的选项如下:
  • 在 Route53 中为 myApp.myCompanyDomain.com 创建 DNS 记录.
  • 调用 API 时,向请求添加 Host header ,并将值设置为 DNS 记录的值。
  • 创建一个新的 API 网关,其中主自定义域与 API 网关中的域对应:myApp.myCompanyDomain.com工作而不是 myApp.myAWSHostedDomain.myCompanyDomain.com work .
  • 关于amazon-web-services - 403 Forbidden on API Gateway with Custom domain 附加域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68085186/

    相关文章:

    java - 为什么 Java StringReader 会抛出 IOException?

    rest - 扩展 Acumatica REST API 端点中的多个字段

    php - ZF2 LDAP SSL 证书不受信任

    ssl - 让我们加密。自动认证所有子域。 (*.domain.de)

    python - 如何将 pip/pypi 安装的 python 包转换为 zip 文件以在 AWS Glue 中使用

    amazon-web-services - AWS Lambda 上的 Apollo graphql 服务无法读取 null 的属性 'Accept'

    azure - 如何使用 Python 在 Azure Devops 中创建 Wiki 子页面?

    python - Flask-SQLAlchemy ssl-connection 与 AWS RDS 错误

    node.js - AWS Lambda 使用触发器创建函数

    java - 如何在 java/eclipse 中为 http 客户端设置密码套件?