1

我有一個問題掙扎了很長一段時間我仍然沒有一個妥善的解決辦法。該方案如下:從AWS證書管理器中設置了一個WordPress網站使用SSL背後負載平衡器

域名: domain-name.com 網站所需的URL:https://www.domain-name.com/ 網站類型: WordPress的 虛擬主機: AWS DNS管理: Route53 SSL:來自附帶負載平衡器的AWS證書管理器

I嘗試了幾種方法可以做到這一點,但沒有奏效,是其中一些如下:

案例1: 在路線53我設置的裸域名與負載均衡器的別名A記錄和CNAME記錄www.domain -name.com與價值domain-name.com 網站網址在WordPress的:https://www.domain-name.com 結果:該網站有太多的重定向和網站加載失敗

案例2: 在路線53我把裸域和www.domain-name.com都是帶有負載均衡器別名的記錄 WordPress的網站URL :https://www.domain-name.com 在htaccess的,我設置的301重定向到https從http 結果:我發現我的網站工作,但它有多個重定向比如,如果我要求與http://domain-name它把我帶到http://www.domain-name然後再重定向到https://www.domain-name

一個網址案例3: 我的情況下,2把一切一樣,只是我換了一個裸域記錄到S3存儲其中有託管啓用靜態網頁,並轉發所有的請求www.domain名,但它並沒有解決多重定向問題。我還嘗試設置使用上述S3存儲桶的CloudFront,並使用cloudfront別名更新裸域的A記錄。

Kindky幫我從53路每個級別的正確設置負載均衡設置的htaccess達到上述標準方式。

感謝

回答

1

你需要採取在一個時間問題了一步。你正試圖一次做所有事情,因此無法確定鏈條中失敗的鏈接。

  1. 請確保您有在路線53指向的一個別名記錄您的ELB,如下所述:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html

    在路線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配置,因爲它可能把事情搞得一團糟。

+0

我以上述方式進行了全新設置,我的網站可通過https訪問。從http重定向到https也可以正常工作,但我的網站可以在兩個URL上訪問,即https://www.domain-name.com和https://domain-name.com。我希望我的網站用戶只能在https://www.domain-name.com上登陸,而且只需一次重定向。 我在上面使用Application Load Balancer。 –

+0

你可以檢查這個其他堆棧溢出文章,顯示如何配置這樣的重定向? https://stackoverflow.com/questions/35749669/htaccess-force-www-and-https-for-specific-domain – mrg2k8

+0

我得到了解決方案,它現在工作正常。 https://stackoverflow.com/questions/39761981/force-https-and-www-on-aws-load-balancer/45627392#45627392 –

1

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

您的網站現在應該送達http://www.domain-name.com/https://www.domain-name.com/

否在htaccess重定向您必須以不同的方式處理事情。由於使用Load Balancer進行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]`