Domain-Name-System

使用帶有 Elastic Beanstalk 的 CNAME 和 A 記錄將非 www 重定向到 www 時遇到很多困難

  • April 15, 2016

我的網站使用 Elastic Beanstalk(作為虛擬主機):http ://apptic.us-east-1.elasticbeanstalk.com/apptic/

我在 Namecheap 也有我的域名:apptic.me

我已將 SSL 證書安裝到我的 Elastic Load Balancer,理想情況下我想使用 HTTPS。但我真正擔心的是,對於 HTTPS 非 www,該站點不會將https://apptic.me>重定向到<https://www.apptic.me - 它完全沒有顯示任何內容

我很確定我的 DNS 設置有問題,而不是我的 Elastic Beanstalk 配置有問題,但我願意接受建議。該站點正確重定向http://apptic.me>,它執行<http://www.apptic.me而不重定向到 https (不是我的一個大問題)。

我目前的 DNS 設置如下:

CNAME Record: www =&gt; apptic.us-east-1.elasticbeanstalk.com.
URL Redirect Record: @ =&gt; https://www.apptic.me/

如何更改我的 DNS 設置,以便 HTTP/HTTPS 和非 www/www 的所有排列都轉到https://www.apptic.me>?[如果http://apptic.me](http://apptic.me)轉到<http://www.apptic.me>並且<https://apptic.me>轉到<https://www.apptic.me ,我什至可以。

處理此問題的正確方法不是使用 DNS 記錄。您應該使用 Route 53 並將您的域設置為 AWS 提供的自定義名稱伺服器。這是我遵循的教程:https ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html

我最後還寫了一篇關於此的部落格文章:https ://www.apptic.me/blog/using-custom-domains-with-elastic-beanstalk.php

這不是 DNS 問題,因為CNAME根據 DNS 標準,使用 apex 別名是不合法的。

“URL 重定向記錄”功能是由 Namecheap 的軟體實現的自定義行為。在後台,它A會為將為您執行重定向的網路伺服器定義一條記錄。

有問題的網路伺服器未偵聽埠 443 (https),​​因此重定向失敗。

$ dig +short apptic.me
162.255.119.250
$ nc -zv 162.255.119.250 443
nc: connect to 162.255.119.250 port 443 (tcp) failed: Connection refused

這幾乎可以肯定是由於 https 的限制,大多數瀏覽器希望 SSL 證書在發送主機標頭之前顯示網站的名稱。Namecheap 在這裡無能為力,除非他們願意將 IP 地址用於您的重定向並將 SSL 證書與您提供的相關聯。另一種方法是讓他們使用生成安全警告的虛假 SSL 證書,而不是處理他們似乎選擇根本不監聽埠 443 的情況。

簡而言之,這是重定向網路伺服器的限制,該限制不太可能被修復,並且沒有解決此問題的 DNS 快捷方式。無縫 https 重定向將需要具有有效的簽名 SSL 證書的專用 https 網路伺服器。擁有一個後,將您的 apexA記錄設置為其 IP 地址。

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