2015-02-23 31 views
32

Przebaczcie mi, jeśli zostało to wcześniej zadane, istnieje wiele zasobów, które mają na to wpływ, ale nic nie pasuje do mojego konkretnego przypadku (https).Przetwarzanie w chmurze przekierowania www do Nonej domeny z ssl

Próbuję przekierować https://www.example.com na https://example.com. Podobnie, powinno to działać dla http://www.example.com do https://example.com.

Skonfigurowałem dystrybucję w chmurze z początkiem wiadra s3, przekierowanie http na https, dodanie adresu cname przyklad.com i dodanie mojego certyfikatu domeny (który działa na poddomenie www, jak również na gołą domenę).

Mam również skonfigurować oddzielną dystrybucję, z cname dla www.example.com, dodano certyfikat i ustawić pochodzenie na osobne wiadro s3, które w (statyczny hosting strony) przekierowuje wszystkie żądania do https://example.com.

Przekierowanie działa zgodnie z oczekiwaniami dla numeru http://example.com na numer https://example.com, ale adres http: //www.example.com to http://example.com nie działa.

Na trasie 53 Mam domenę główną aliasowaną do pierwszej dystrybucji w chmurze i www aliasowaną do drugiej.

+0

Proszę zobaczyć moją odpowiedź tutaj, która powinna być całkiem pomocna: http://stackoverflow.com/questions/36265027/how-to-forward-non-www-to-www-with-aws-amazon-cloud-front -behind-https-cloud-fro/41899321 # 41899321 – Marcel

+0

Zamiast zamykać to pytanie, czy możemy przenieść je na błąd serwera? Chciałbym dodać odpowiedź. – jtheletter

Odpowiedz

32

znalazłem rozwiązanie dzięki tej odpowiedzi: Amazon S3 Redirect and Cloudfront

W skrócie:

CloudFront nie przestrzega reguł konfiguracji przekierowania w S3 czy pochodzenie jest tylko identyfikator wiadro. Zamiast tego musiałem ustawić źródło na podaną s3 statyczną nazwę hosta strony.

+6

Dziękuję bardzo za opublikowanie odpowiedzi. Używałem go do przekierowywania HTTPS z nagich domen do www, np. [https://example.com] (https://example.com) -> [https://www.example.com] (https://www.example.com). To rozwiązanie jest sprzeczne z intuicją, ponieważ interfejs użytkownika AWS automatycznie wykonuje autouzupełnianie do standardowej nazwy hosta S3 (bucketname.s3.amazonaws.com), co można by uznać za prawidłowy sposób, ale w tym przypadku użycia, statyczny serwis WWW obsługujący punkt końcowy (np. bucketname.s3-website-us-east-1.amazonaws.com) jest tym, czego potrzebujesz. – kellen

+3

Ważne jest również, aby twoje dystrybucje CloudFront ** nie ** miały niczego ustawionego jako ** Domyślny obiekt główny **, ponieważ spowoduje to przełamanie przekierowania w wiadrze S3. –

+0

Twoje łącze wskazuje na pytanie. Którą odpowiedź na to pytanie masz zamiar połączyć? – jtheletter

23

Host witryny na AWS, tak aby:

https://www.example.com, http://www.example.com i http://example.com wszystko przekierować do https: //example.com

trzeba:

  1. Utwórz dwa S3 wiadra o nazwie: example.com i www.example.com.

  2. Włącz statyczną witrynę internetową Hosting na tych dwóch segmentach.

  3. Konfigurowanie przekierowania w wiadrze www.example.com do: https://example.com. Właściwości wiadra: wybierz Statyczna strona internetowa Hosting =>Przekierowuj wszystkie żądania na inną nazwę hosta. Pamiętaj, aby podać adres URL z prefiksem https: //!

  4. Dla tych wiader utworzyć dwie CloudFront Distributions.Każdy z tych rozkładów wskazać odpowiadający wiadra:

  5. Dla Origin Domain Name zapewnić wiadro adresy URL zawarte w Static Website Hosting sekcję. Adresy URL powinien mieć postać (lub podobny): example.com.s3-website-us-west-1.amazonaws.com

    • Na obu dystrybucji ustawić HTTP HTTPS przekierowania.

    • NIE UŻYWAJ URL SUGEROWANEGO PRZEZ AMAZON AUTOCOMPLETE!

    • NIE USTAWIĆ Domyślny obiekt główny NIERUCHOMOŚĆ!

  6. Konfiguracja DNS poprzez ustawienie rekordy www.example.com i example.com zwrócić do odpowiednich rozkładów CloudFront.

Dlaczego to działa? CloudFront zapewnia przekierowanie z HTTP do HTTPS w obu przypadkach (zi bez www). Pojemnik na www.example.com zapewnia przekierowanie do example.com. Jeśli nie masz tej dystrybucji, wiadro nie może przekierować żądania na https://www.example.com. Sam S3 nie obsługuje protokołu HTTPS do statycznego hostingu witryn.

+4

Nie ustawiaj przekierowania HTTP na HTTPS w dystrybucji www-> naked CF, aby uniknąć niepotrzebnego przekierowania. Chcesz, aby http://www.example.com trafił bezpośrednio do https://example.com, a nie https://www.example.com. – maletor

+0

Nie ustawiaj rekordu A na 53 dla www. Użyj rekordu CNAME. Użyj ALIAS dla rekordu A i AAAA w domenie root. – maletor

+0

@maletor Oba działają. Rekordy ALIAS + A nie są przeznaczone tylko dla domen root'a, służą do wskazywania wpisu DNS do dystrybucji CloudFront. – ffxsam