Amazon S3 - HTTPS / SSL - czy to możliwe? [Zamknięte]

177

Widziałem kilka innych pytań dotyczących tego bez prawdziwych odpowiedzi lub informacji (a przynajmniej tak się wydawało).

Mam tutaj zdjęcie:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Który przekierowuje do:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Muszę to być (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Więc zainstalowałem Wildcard ssl na retailcatalog.us (mamy inne subdomeny), ale to nie działało. Poszedłem sprawdzić
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

I to nie działało, co oznacza, że ​​w samej witrynie Amazon S3 https nie działał.

Jak to działa?

Kerry Jones
źródło
Twoje pytanie nie wyjaśnia dokładnie, co chcesz zrobić. Czy chcesz, aby żądania HTTP przekierowywały do ​​https? Jeśli tak, powinieneś przeformułować tytuł pytania, aby lepiej to podkreślić. To pomoże większej liczbie osób znaleźć to pytanie i odpowiedzieć na nie.
A. Levy
Nie, chcę mieć bezpieczny dostęp do obrazu. czy to możliwe?
Kerry Jones
Ten ostatni adres URL działa dla mnie, chociaż zawiera błąd certyfikatu, który prawdopodobnie stanowi dla Ciebie problem
Michael Haren
Tak, to jest problem. Przede wszystkim powstrzymuje mnie to przed zobaczeniem tego certyfikatu i muszę ręcznie zweryfikować certyfikat, aby go zobaczyć.
Kerry Jones
1
tylko kilka lat później do gry, ale nazwy cnames SSL działają w chmurze. przykład cdn.example.com wskazuje na randomstring.cloudfront.net, który wskazuje na Twój segment s3. Witryna https: // cdn.example.com będzie wyświetlać zawartość bez błędów, ale przy próbie bezpośredniego przeglądania adresu URL zostanie wyświetlone ostrzeżenie dotyczące certyfikatu.
Neil McGuigan

Odpowiedzi:

182

To jest odpowiedź, którą otrzymałem od ich usług Premium

Dzień dobry,

W rzeczywistości jest to problem ze sposobem, w jaki SSL weryfikuje nazwy zawierające kropkę, znak „.”,>. Udokumentowaliśmy to zachowanie tutaj:

http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html

Jedynym prostym rozwiązaniem tego problemu jest użycie nazwy zasobnika, która nie zawiera tego znaku. Zamiast tego możesz użyć wiadra o nazwie „Furniture-retailcatalog-us”. Umożliwiłoby to używanie protokołu HTTPS z plikami

https://furniture-retailcatalog-us.s3.amazonaws.com/

Możesz oczywiście umieścić rekord CNAME DNS, aby był bardziej przyjazny. Na przykład,

images-furniture.retailcatalog.us W CNAME furniture-retailcatalog-us.s3.amazonaws.com.

Mam nadzieję, że to pomoże. Daj nam znać, jeśli masz inne pytania.

Amazon Web Services

Niestety, twój „przyjazny” rekord CNAME spowoduje niezgodność nazwy hosta podczas walidacji certyfikatu, dlatego tak naprawdę nie możesz go używać do bezpiecznego połączenia. Dużą brakującą funkcją S3 jest akceptowanie niestandardowych certyfikatów dla Twoich domen.


AKTUALIZACJA 02.10.2012

Od @mpoisot:

Link podany przez Amazon nie mówi już nic o https. Przeszukałem dokumentację S3 i wreszcie znalazłem małą notatkę o tym na stronie Virtual Hosting: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


AKTUALIZACJA 17.06.2013

Od @Joseph Lust:

Właśnie to rozumiem! Sprawdź to i zarejestruj się, aby otrzymać zaproszenie: http://aws.amazon.com/cloudfront/custom-ssl-domains

Kerry Jones
źródło
22
+1 za śledzenie wygranego pytania - bardzo pomocne informacje, które łatwo przeoczyć w dokumentacji S3!
Steffen Opel,
1
Link podany przez Amazon nie mówi już nic o https. Przeszukałem
mpoisot
4
Pamiętaj, że jest to 600 USD ZA MIESIĄC. : -o
samotna łódź
8
Teraz można używać własnego certyfikatu SSL dla Cloudfront bez dodatkowych kosztów . Więc opłata w wysokości 600 $ / m zniknęła.
schickling
4
@schickling Warto również zauważyć, że CloudFront dokonał tej zmiany, umożliwiając wybór między SNI lub Dedykowanym IP SSL. Dedykowany protokół IP SSL nadal kosztuje 600 USD, ale SNI SSL jest bezpłatny. Upewnij się tylko, że wybrane przeglądarki obsługują SNI.
Ryan Pendleton
111

Wiem, że minął rok, ale użycie tego rozwiązuje problem: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

Widziałem to w innej witrynie ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).

payton109
źródło
18
tak naprawdę nie wydaje się go rozwiązać Nadal używa nazwy domeny amazon (s3.amazonaws.com), więc jest do bani!
themihai
14
To nie jest do niczego. Tak, domena jest inna, ale umożliwia udostępnianie treści przez SSL w istniejącym zasobniku na S3. Bez tego schematu musisz utworzyć zasobnik tylko dla plików obsługiwanych przez SSL (ponieważ certyfikat SSL z symbolem wieloznacznym S3 nie będzie pasował do plików.twojadomena.com.s3.amazonaws.com): bezpieczna-twojadomena.s3.amazonaws.com . Masz teraz do zarządzania dwoma zasobnikami zamiast jednego. Nie jest to wielka sprawa, ale w aplikacjach internetowych każda złożoność bardziej niż to, co jest absolutnie potrzebne, jest do niczego.
andrew
7
Cześć, właściwie jestem facetem, który napisał odsyłacz, który umieściłeś tam „Joonha”. Małym klejnotem, którego nie można przegapić, jest użycie samej techniki + „//” jako początku protokołu. W mojej firmie zajmującej się rozwojem e-commerce stosujemy linki do adresów URL z „//” zamiast „https: // lub„ http: // ”, ponieważ w tym momencie nigdy nie musimy się tym przejmować.
Jason Sebring
4
Wygląda na to, że to już nie działa, pojawił się błąd PermanentRedirect.
Paulo Casaretto
5
Zobacz moją nową odpowiedź dotyczącą tego, dlaczego to działa dla niektórych osób, a nie dla innych. Ma znaczenie, w jakim regionie są twoje wiadra.
Nate,
47

Odpowiedź payton109 jest prawidłowa, jeśli jesteś w domyślnym regionie US-EAST-1. Jeśli Twój zasobnik znajduje się w innym regionie, użyj nieco innego adresu URL:

https://s3-<region>.amazonaws.com/your.domain.com/some/asset

Gdzie <region>jest nazwa lokalizacji zasobnika. Na przykład, jeśli Twój zasobnik znajduje się w regionie us-west-2(Oregon), możesz to zrobić:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
Nate
źródło
1
Podczas korzystania z rekordu CNAME DNS chodzi tylko o rozpoznawanie domeny, więc nie możesz przekierować do adresu URL ze ścieżką. Zobacz też: stackoverflow.com/questions/32714351/…
Sebastien Lorber
To działa dla mnie i jest najbardziej kompletną odpowiedzią.
besimple
2
To dobrze, ale omija statyczne reguły hostingu witryn, takie jak reguły przekierowania do index.html
Kim T
Jest to idealne rozwiązanie dla twórców stron internetowych bez zespołu devops lub sys-admin. Jasne, Twoje zasoby nie będą miały eleganckiej domeny, ale ilu klientów sprawdza kod HTML lub żądania bazowe i tsk tsk tsk pod adresem URL domeny? Niewiele! Przeniesienie statycznych zasobów z aplikacji do S3 to przede wszystkim świetny pierwszy krok.
stwr667
8

Jak wspomniano wcześniej, nie jest to bezpośrednio możliwe, ale można skonfigurować Apache lub nginx + SSL na instancji EC2, CNAME do żądanej domeny i odwrotne proxy do adresów URL S3 (domeny niestandardowej).

Mark Wang
źródło
Jednym ze sposobów znalezienia w pełni kwalifikowanej ścieżki SSL do zasobu S3 jest drążenie go za pomocą konsoli AWS. Pełna ścieżka jest wyświetlana u dołu karty Przegląd.
eric gilbertson