我在跟踪this tutorial之后最近向AWS部署了一个react应用程序,一切正常,除非我想要集成我最近使用AWS Route 53购买的自定义域,我收到错误(403)。< / p>
为了将Route 53与CloudFront集成,我按照docs中的这些步骤进行操作,我知道我的问题与某种权限授权相关,但我不知道到底在哪里我做错了什么。
答案 0 :(得分:5)
解决了,我的问题与CloudFront Distribution的未分配替代域名(CNAME)有关。
答案 1 :(得分:1)
看起来你正在尝试使用http而不是https。
如果您启用了http,则表示无法访问目标方法或路径。
答案 2 :(得分:1)
添加有关上述两个答案的其他信息。
如How do I resolve the error "The request could not be satisfied. Bad Request" from Amazon CloudFront 中所述:
此错误消息“无法满足该请求。错误的请求。” 来自客户端,并且由于以下原因之一而可能发生错误 原因:
1)该请求通过HTTP发起,但是CloudFront分发 配置为仅允许HTTPS请求。
2)所请求的备用域名(CNAME)与 CloudFront发行版。
#1解决方案:
打开Amazon CloudFront控制台->选择相关发行版->
转到行为视图->选择与请求匹配的行为,然后单击编辑->
然后在查看器协议策略中选择以下选项:HTTP and HTTPS
或Redirect HTTP to HTTPS
。
#2解决方案:
由于this release在将备用域名添加到分发时,还必须将SSL / TLS证书附加到覆盖该备用域名的那个分发。
因此,首先请确保在更新发行版以添加备用域名之前执行以下操作:
A)向域名提供商(GoDadday,CloudFlare,Route 53等)注册域名。
B)将来自授权证书颁发机构(例如-Let's Encrypt)的证书添加到CloudFront,该证书涵盖您计划与发行版一起使用的域名,以验证您是否有权使用该域。 (在here中了解更多)。
只有这样:
打开Amazon CloudFront控制台->常规视图->编辑->备用域名(CNAME)->输入要与CloudFront分配关联的CNAME(例如www
或home
)。