Cloudflare上的SSL上的Elastic Beanstalk

时间:2016-12-27 21:46:29

标签: ssl parse-platform elastic-beanstalk

我在AWS上使用ElasticBeanStalk作为Parse环境的一部分。 Elastic Beanstalk URL是myparseapp.elasticbeanstalk.com。当用户在我的网站(“www.example.com”)上注册帐户时,Elastic Beanstalk发挥其魔力。

直到我在即将投入生产的网站上启用SSL并对其进行测试之前一切正常。注册失败,我在开发者控制台中看到了这一点:

  

parse.min.js:16混合内容:页面位于   “https://www.example.com/register.html”是通过HTTPS加载的,但是   请求不安全的XMLHttpRequest端点   'http://myparseapp.elasticbeanstalk.com/parse/users'。这个要求有   被封锁了;内容必须通过HTTPS提供。

我理解为什么我收到错误。我不清楚如何解决它。我读到的所有内容都说“注册您的域名,获得SSL证书,使用Route 53附加CNAME(www),将其应用于负载均衡器。完成。”

嗯... 1)我已经拥有一个用于我网站的域名。 2)我的SSL通过Cloudflare提供服务,这是SSL终止的地方。 3)当我的www.example.com是我的实际网站时,为什么要将CNAME“www”分配给Elastic Beanstalk?不会使用CNAME“www”打破我的网站? 4)我的Elastic Beanstalk实例不在负载均衡器后面。

我是否需要为弹性beanstalk创建一个单独的域?这听起来不对。我可以看到它可能是一个子域名,例如parseapp.example.com。

由于我正在使用Cloudflare(我喜欢它),我宁愿不使用Route 53 ...但如果这是我唯一的选择,那就这样吧。

总而言之,如何使用Cloudflare通过SSL访问我的Elastic Beanstalk应用程序?

提前感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

无需查看CloudFlare中的所有配置,以下是我们如何使用CloudFlare和AWS设置Parse系统。

如果Parse Server实例(在elasticbeanstalk上)无法处理HTTPS:

  • 使用CloudFlare将子域parse.example.com设置为别名为myparseapp.elasticbeanstalk.com的CNAME。
  • 确保云图标为橙色(已开启)。
  • 转到CloudFlare中的加密选项卡,确保将其设置为Flexible。这样做将使所有example.com域的请求通过CloudFlare进行,CloudFlare将使用CloudFlare的SSL,但随后CloudFlare将以HTTP或HTTPS将该请求路由到您的elasticbeanstalk.com
  • 确保您的解析服务器网址现已设置为https://parse.example.com/parse(如您的CNAME中所定义)。这将使您的Ajax请求看起来像:https://parse.example.com/parse/users而不是之前的URL。

如果您可以在实例上设置SSL证书,则可以配置CloudFlare,为您提供可在实例上安装的Origin Certificates(请参阅Crypto下的Origin Certificates标签)。这些证书用于保护CloudFlare和源服务器之间的连接,在您的情况下是ElasticBeanstalk。如果您这样做,那么您仍应按照上述步骤操作,但不要在SSL上选择Flexible,而是使用Full