2017-04-20 68 views
0

12個小時後,我無法使HTTPS在我的應用程序中工作。 我所做的:如何在使用NGINX和Ruby on Rails的Amazon EC2中使用https?

  1. 亞馬遜證書管理器,我創造了我的域名證書;
  2. 安全組 - 入選項卡,我包括HTTPS(HTTPS - TCP - 443 - 0.0.0.0/0)
  3. 我創建了一個經典負載平衡器,其中包括2個listners:

    • HTTP - 端口80
    • HTTPS - 端口443 |實例協議HTTP |實例端口80 |關聯我的證書(步驟1 - ACM亞馬遜證書管理器)
  4. 亞馬遜路線53個 - 託管區域,我加了2條記錄在我的託管區:

    • CNAME WWW與價值MYDOMAIN。 com
    • 類型A IPv4地址|別名是|別名目標:我的負載均衡

在教程,我看到(的YouTube +互聯網),只能用HTTPS上述步驟工作在Amazon EC2上。但是,這些教程不適用於NGINX和Ruby On Rails。

我得到的錯誤是:ERR_CONNECTION_REFUSED

更多的搜索後:

  • 使用SSH,我去了:在/ etc/nginx的/網站可用/ MYAPP我刪除了評論:listen 443 ssl;
  • 重啓nginx的後,我得到了2個隨機錯誤:ERR_CONNECTION_RESET和ERR_CONNECTION_CLOSE

    我不知道更多的事情要做什麼。

    一些打印:

    安集團 Security Group

    負載平衡器 - 標籤頁實例 Load Balancer - Tab Instances

    負載平衡器 - 標籤Listners Load Balancer - Tab Listners

    亞馬遜託管區域 Amazon Hosted Zones

    的/ etc/nginx的/網站可用/ MYAPP /etc/nginx/sites-available/myapp

    我的環境

    OS: Ubuntu 14.04.2 LTS 
    ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 
    rails -v: Rails 4.2.3 
    nginx -v: nginx/1.8.0 
    

    韓國社交協會大家!

    回答

    0

    問題是域的DNS記錄沒有指向我的EC2。 當我註冊了自定義域名時,我離開了DNS記錄的默認域名。 在域高級DNS區域中,我將「* .domain.com」和「@ .domain.com」指向我的EC2公共IP。但是,當我們使用Load Balancer時它不起作用。

    然後,我去我的域名面板,我改變了DNS,指向我的EC2。 4個DNS,像這樣:

    ns-XXX.awsdns-XXX.org 
    ns-XXX.awsdns-XXX.co.uk 
    ns-XXX.awsdns-XXX.net 
    ns-XXX.awsdns-XXX.com 
    

    的DNS傳播後,亞馬遜路線53將是負責管理服務器的DNS記錄。

    在Amazon Route 53(Amazon Hosted Zones)中,我有一個別名記錄,它使用我的Load Balancer。

    如果您想使用Amazon證書管理器(ACM),請按照我的問題中的步驟1至4。請記住,將您的域名DNS指向Amazon EC2。 忘掉第5步。

    我跟着tutorial on Youtube來做到這一點。 如果你有一個實例(像我一樣),忽略創建實例進程。我也忽略了彈性IP創建過程。

    現在,https工作正常。