簡體   English   中英

通過負載均衡器背后的AWS Certificate Manager使用SSL設置Wordpress網站

[英]Setting up a wordpress website with SSL from AWS certificate Manager behind Load Balancer

我在一個問題上苦苦掙扎了很長時間,但我還沒有合適的解決方案。 場景如下:

域名: domain-name.com 網站所需的URL: https : //www.domain-name.com/ 網站 類型: Wordpress Web托管: AWS DNS管理: Route53 SSL:來自負載均衡器附帶的AWS Certificate Manager

我嘗試了幾種方法來執行此操作,但是沒有用,其中一些方法如下:

情況1:在Route 53上,我設置了帶有負載均衡器別名的裸域A記錄和www.domain-name.com的CNAME記錄,其值是domain-name.com在wordpress上的網站URL: https://www.domain-name。 com結果:此網站重定向過多,網站加載失敗

情況2:在Route 53上,我同時設置了裸域和www.domain-name.com都具有負載均衡器別名的記錄wordpress上的網站URL: https : //www.domain-name.com在htaccess中,我將301重定向設置為https來自http的結果:我發現我的網站正常運行,但是它具有多個重定向,例如,如果我請求帶有http://域名的URL,則會將我帶到http://www.domain-name,然后再次重定向到https:// www.domain名

情況3:除了將裸域的記錄更改為S3存儲桶(啟用了靜態網站托管)並將所有請求轉發到www.domain-name之外,其他所有情況都與情況2相同,但它沒有解決多重重定向問題。 我還嘗試設置使用上述S3存儲桶的CloudFront,並使用cloudfront別名更新了裸域的A記錄。

Kindky幫助我在從Route 53到Load Balancer設置到htaccess的每個級別進行正確設置,以標准方式實現上述目標。

謝謝

您需要一次一步解決問題。 您正在嘗試一次完成所有操作,因此無法確定鏈中出現故障的鏈接。

  1. 確保在Route 53中有指向您的ELB的Alias記錄,如下所述: http : //docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html

    在Route 53托管區域上,確保您有一個名為www.domain-name.com的記錄,類型A,別名:是,別名目標:ELB的名稱

  2. 確保正確配置了ELB上的偵聽器。 使一切都在HTTP上運行之后,您可以專注於HTTPS。 由於VPC內部的流量被認為是私有的,因此是安全的,您的后端實例應僅偵聽端口80。因此,請刪除任何重定向,從一個偵聽器(80(HTTP)-> 80(HTTP)開始並確認您的網站可訪問后,添加第二個偵聽器443(HTTPS)-> 80(HTTP)。

    您正在使用新的ALB還是舊的經典ELB?

    現在,您的網站應該同時在http://www.domain-name.com/https://www.domain-name.com/上提供

  3. 您現在可以在后端實例上實現從HTTP到HTTPS的重定向,如此處所述https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

    另外,請確保在Wordpress中配置了正確的網站地址,因為這可能會使事情搞砸。

在路由53中,將www和非www域的A記錄添加到Application LB別名。 從一個偵聽器(80(HTTP)-> 80(HTTP))開始,並在確認您的網站可訪問之后,添加第二個偵聽器443(HTTPS)-> 80(HTTP)。

現在,您的網站應該同時在http://www.domain-name.com/https://www.domain-name.com/上提供

在htaccess上不能重定向,您必須以不同的方式處理。 由於負載平衡器的SSL卸載功能,您將不會以常規方式檢查https。 您將需要檢查X-Forwarded-Proto

對於https://www.domain-name.com,它應如下所示。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC]
RewriteRule ^.*$ https://www.%2%{REQUEST_URI} [R=301,L]` 

對於https://domain-name.com,它應如下所示。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC]
RewriteRule ^.*$ https://%2%{REQUEST_URI} [R=301,L]` 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM