Tomcat

AWS Beanstalk 將整個應用程序從 http 重定向到 https

  • September 28, 2019

aws 負載均衡器通過埠 80 將所有 https 請求轉發到 ec2 實例。我需要以某種方式將所有 http 請求重定向到 https。

到目前為止,我收集到的是您需要以某種方式使用重定向規則修改 ec2 實例,然後將該實例保存為新的 AMI,並將​​ beanstalk 指向新的 AMI。

我找到了以下重寫規則,但不幸的是我不知道如何處理它。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

我 ssh 進入我的 ec2 實例,然後去了/etc/httpd/,這就是我所做的。我完全迷失了我應該從那裡做的事情。

  1. 我是修改文件還是創建新文件?
  2. 如果我需要修改或創建一個新文件,它會在哪裡,或者我會怎麼稱呼它,它會去哪裡?
  3. 有人可以提供文件的確切內容嗎
  4. 創建/修改此文件後,下一步該做什麼?我是否只是轉到 ec2 頁面,點擊我的實例旁邊的複選框,點擊操作,最後創建圖像?

如果是這樣,這一切意味著什麼?我不知道我應該在這裡有什麼設置。在此處輸入圖像描述

最後,我假設我只是在 beanstalk 儀表板中進行配置,只需將 beanstalk env 指向我的新 AMI 並重新啟動伺服器。這聽起來正確嗎?

如果有人知道如何執行此操作或詳細描述該過程的網站,我會很高興。

我想指出,我在 tomcat 上使用了一個 java 應用程序。我也不確定自定義 AMI 是否會影響伺服器規模的擴大。

所以你需要做一些事情

  1. 在您的負載均衡器中,為埠 80 和埠 443 定義兩個偵聽器
  2. 在 ec2 實例中,在/etc/httpd/conf.d/elasticbeanstalk.conf- 將您的重寫規則添加到虛擬主機部分
  3. 完成後,當這個工作正常時,您可能需要創建一個 ami 映像,以便這些設置保留在一個 ami 映像中,您以後可以使用它來創建其他實例

雖然這不是您所要求的,但我們通過CloudFront執行此操作。它比您建議的要容易得多,並且您可以獲得 CloudFront CDN 的所有額外好處,以幫助減輕 beanstalk ec2 實例的負載。

首先設置一個分佈,其指向您的 beanstalk 負載均衡器(您也可以創建一個自定義源指向您的彈性 beanstalk 域名)。 然後使用“查看器協議策略”創建一個行為以“將 HTTP 重定向到 HTTPS”。

唯一的問題是您可能需要重新上傳您的 ssl 證書以添加“路徑”,以便它可以在 CloudFront 中使用。

aws iam upload-server-certificate --server-certificate-name certificate_object_name --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file  --path cloudfront_path

引用自:https://serverfault.com/questions/643390