AWS CloudFront用于托管SSL并转发到sendgrid无法正常工作

我试图从我的应用程序注册表中将链接作为SSL / HTTPS安全链接.这有助于电子邮件客户端可以将链接视为http vs https的可传递性和其他内容.

我们的应用程序使用SendGrid发送电子邮件,这也支持我们的链接上的点击跟踪.为了做到这一点,SendGrid和大多数其他电子邮件发件人服务取代了我们放入的原始链接,这是一个https://blahblah.com链接,带有自己的链接,http://clicktrack.sendgrid.net或者不是https的东西,而是http.

SendGrid支持“白色标记”点击跟踪链接
http://subdomain.blahblah.com以及https版本,如果我们正确设置它.此处显示了https / ssl链接的SendGrids要求
https://sendgrid.com/docs/Classroom/Build/Add_Content/content_delivery_networks.html

基本上他们要求我们设置一个CDN或其他服务器来托管我们的SSL证书,终止SSL,然后将请求转发到他们的服务器上.一旦到位,他们可以在他们的电子邮件链接上“打开”ssl.

我尝试在AWS CloudFront中设置它,其原点为sendgrid.net,分发包含我们的SSL证书和指向我们发行版的路由53 CNAME.所以subdomain.blahblah.com指向分发CDN,CDN指向sendgrid,所有都应该工作.

测试这虽然它不起作用.如果我转到子域的http版本它确实有效,CDN正确转发. AWS支持人员表示,这是一个与主机标头相关的问题,当我在subdomain2.blahblah.com上拥有第二个CNAME时,CDN无法验证来源.这导致我删除第二个cname和direclty把sendgrid作为原点,但这没有用,他们还没有提供解决方案.我得到这样的错误..

错误

请求无法满足.

CloudFront无法连接到源.
由cloudfront生成(CloudFront)
请求ID:pl1bS3OObC6mUd2vyyhM6bNFt3xyLsfzVIqNmiPkEO7mQgJyQCn_pA ==

欢迎任何想法或以不同的方式做到这一点?

最佳答案 问题出在我转发所有标题的行为中.在这种情况下不应转发“主机”标头,否则原始ssl调用将因为预期不匹配而中断. AWS支持终于解决了这个问题并向我推荐:)

点赞