Prestashop错误使用AWS CloudFront后重定向过多

时间:2019-12-24 14:02:28

标签: amazon-ec2 prestashop amazon-cloudfront

我必须使用通过这种方式配置的CloudFront发行版为我的域“ farmtrust.tn”创建SSL证书

  1. 将原始协议策略设置为“仅HTTP”

  2. TLSv1.1_2016的最小起源SSL协议

  3. 将源更改为我的EC2实例公共DNS

  4. 设置查看器协议策略以将HTTP重定向到HTTPS

  5. 最后为“ farmtrust.tn”添加一个指向CloudFront分发URL的别名记录。

注意:用户与CloudFront URL之间的连接使用HTTPS,而CloudFront与Origin之间的连接使用http。

后来,当我尝试使用curl命令获取对网站“ https://farmtrust.tn”的请求时,我注意到HTTP 302响应。

$ curl -IX GET https://farmtrust.tn 

HTTP/2 302 

content-type: text/html; charset=utf-8

content-length: 0

location: http://farmtrust.tn/ 

date: Mon, 23 Dec 2019 16:16:52 GMT

server: Apache/2.4.29 (Ubuntu)

x-cache: Hit from cloudfront

via: 1.1 87ba4da6c7513242d551023ab57badbf.cloudfront.net (CloudFront)

x-amz-cf-pop: MAN50-C1

x-amz-cf-id: BKFMLi_leVgG0Fniw0ZHYlp4fR8T2xJkhWsUs2x1nZRgr-ZnQ6eX-A==

age: 492

我作了进一步研究,发现路由过程中出现了以下循环。

https://farmtrust.tn —> CloudFront URL —> EC2来源—> WebServer —> http://farmtrust.tn —> CloudFront将其重定向到“ https://farmtrust.tn” — — ...

现在,当我尝试访问该网站时,我得到ERR_TOO_MANY_REDIRECTS

使用Prestashop,有一些配置会将这些请求重定向到预定义的URL。位于表ps_configuration和ps_shop_url

我想知道是否可以以某种方式停止此重定向,或者应该怎么做。

最诚挚的问候,

2 个答案:

答案 0 :(得分:0)

从我掌握的信息来看,您的原始服务器似乎需要HOST标头值作为farmtrust.tn,而CloudFront正在发送您在原始配置(EC2 DNS名称)中定义的HOST标头。

您可以尝试在CloudFront中将HOST标头列入白名单并使缓存无效并查看是否可行吗?

这从curl输出的下面是有意义的(farmtrust.tn当前指向EC2):

curl -vko /dev/null http://farmtrust.tn/fr/ -H "Host: ec2-35-180-3-55.eu-west-3.compute.amazonaws.com" 
Always 302 

curl -vko /dev/null http://farmtrust.tn/fr/
Returns 200

答案 1 :(得分:0)

我遇到了类似的问题,下面是我解决该问题的方法-

1)我们在Cloudfront和原始服务器之间不能有http,在查看器和Cloud Front之间不能有https,这将失败并显示证书不匹配错误。 因此,请先设置您的ec2 ssl,然后使用certbot获得免费的ssl证书。

2)一旦ec2是ssl,就创建一个带有http和https侦听器的负载均衡器elb。

3)在您的云前端将elb作为原点。并在53号路线上指向云锋。