2016-12-27 151 views
0

我在AWS上使用ElasticBeanStalk作爲我的Parse環境的一部分。 Elastic Beanstalk URL是myparseapp.elasticbeanstalk.com。當用戶在我的網站上註冊一個帳戶(「www.example.com」)時,Elastic Beanstalk發揮它的魔力。Cloudflare上SSL的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)My Elastic Beanstalk實例不在負載平衡器後面。

我是否需要爲彈性beanstalk創建一個單獨的域?這聽起來不對。我可以看到它可能是一個子域,比如parseapp.example.com。

因爲我使用的是Cloudflare(我喜歡它),所以我不想使用Route 53做這個......但是如果這是我唯一的選擇,那就這樣吧。

因此,總之,如何使用Cloudflare通過SSL訪問我的Elastic Beanstalk應用程序?

非常感謝您的幫助。

回答

2

沒有在CloudFlare中查看所有配置,以下是我們如何使用CloudFlare和AWS設置我們的Parse系統。

如果解析服務器實例(上elasticbeanstalk)不能處理HTTPS:

  • 安裝一個子域parse.example.com用的CloudFlare作爲CNAME與myparseapp.elasticbeanstalk.com的別名。
  • 確保雲圖標爲橙色(打開)。
  • 轉到CloudFlare中的加密選項卡並確保它設置爲Flexible。這樣做會對所有example.com域的請求都通過CloudFlare,它將使用CloudFlare的SSL,但CloudFlare會將請求路由到您的elasticbeanstalk.com,無論是HTTP還是HTTPS。
  • 確保您的分析服務器網址現在設置爲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

+0

你是一個拯救生命的人,我的朋友。工作很棒!謝謝! – mrbranden