Amazon S3 - HTTPS / SSL - возможно ли это? [закрыто]


177

Я видел несколько других вопросов по этому поводу без каких-либо реальных ответов или информации (или так оно и появилось).

У меня есть изображение здесь:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Который перенаправляет на:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Мне нужно, чтобы это было (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Поэтому я установил подстановочный символ ssl на retailcatalog.us (у нас есть другие поддомены), но он не работал. Я пошел, чтобы проверить
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

И это не сработало, а это означает, что на самом сайте Amazon S3 https не работал.

Как мне сделать эту работу?


Ваш вопрос не объясняет, что именно вы хотите сделать. Вы хотите, чтобы HTTP-запросы перенаправлялись на https? Если это так, вам следует перефразировать заголовок вопроса, чтобы лучше изложить этот факт. Это поможет большему количеству людей найти этот вопрос и ответить на него.
А. Леви

Нет, я хочу получить безопасный доступ к изображению. Это возможно?
Керри Джонс

Этот последний URL работает для меня, хотя он идет с ошибкой сертификата, которая, вероятно, является проблемой для вас
Майкл Харен

Да, это проблема. Во-первых, я не вижу его, и мне приходится проверять сертификат вручную, чтобы увидеть его.
Керри Джонс

1
только на несколько лет позже, но ssl cnames работают с облачным фронтом. Пример cdn.example.com указывает на randomstring.cloudfront.net, который указывает на вашу корзину s3. https: // cdn.example.com будет обслуживать контент без ошибок, но вы получите предупреждение, если попытаетесь просмотреть URL-адрес напрямую.
Нил Макгиган

Ответы:


182

Это ответ, который я получил от их Премиум Сервисов

Привет,

Это на самом деле проблема с тем, как SSL проверяет имена, содержащие точку, символ «.»,>. Мы задокументировали это поведение здесь:

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

Единственное прямое исправление для этого - использовать имя группы, которое не содержит этот символ. Вместо этого вы можете использовать ведро с именем «furniture-retailcatalog-us». Это позволит вам использовать HTTPS с

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

Конечно, вы могли бы поместить запись DNS CNAME, чтобы сделать это более дружественным. Например,

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

Надеюсь, это поможет. Дайте нам знать, если у вас есть другие вопросы.

Amazon Web Services

К сожалению, ваш «дружественный» CNAME вызовет несоответствие имени хоста при проверке сертификата, поэтому вы не можете использовать его для безопасного соединения. Большая недостающая особенность S3 - принятие пользовательских сертификатов для ваших доменов.


ОБНОВЛЕНИЕ 10/2/2012

От @mpoisot:

Ссылка, предоставленная Amazon, больше не говорит о https. Я изучил документы S3 и, наконец, нашел небольшую заметку об этом на странице виртуального хостинга: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html.


ОБНОВЛЕНИЕ 17.06.2013

От @Joseph Lust:

Просто получил это! Проверьте это и подпишитесь на приглашение: http://aws.amazon.com/cloudfront/custom-ssl-domains


22
+1 за продолжение вашего выигранного вопроса - очень полезная информация, которую легко пропустить в документации S3!
Штеффен Опель

1
Ссылка, предоставленная Amazon, больше не говорит о https. Я покопался в документах S3 и наконец нашел небольшую заметку об этом на странице виртуального хостинга: docs.amazonwebservices.com/AmazonS3/latest/dev/…
mpoisot

4
Обратите внимание, что это 600 долларов в месяц. : -o
одинокая лодка

8
Теперь можно использовать собственный SSL-сертификат для Cloudfront без дополнительных затрат . Таким образом, 600 $ / м заряд исчез.
Шиклинг

4
@schickling Также стоит отметить, что CloudFront внес это изменение, позволив вам выбирать между SNI или Dedicated IP SSL. Выделенный IP SSL по-прежнему стоит 600 долларов, но SNI SSL бесплатный. Просто убедитесь, что выбранные вами браузеры поддерживают SNI.
Райан Пендлтон

111

Я знаю, что это год спустя, но с помощью этого решаю: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

Я видел это на другом сайте ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).


18
кажется, не решает проблему Он по-прежнему использует доменное имя Amazon (s3.amazonaws.com), так что это отстой!
Фесихай

14
Это не отстой. Да, домен другой, но он позволяет вам передавать контент через SSL в существующую корзину на S3. Без этой схемы вы должны создать корзину только для файлов, обслуживаемых SSL (поскольку сертификат SSL с подстановочными знаками S3 не будет совпадать с files.yourdomain.com.s3.amazonaws.com): secure-yourdomain.s3.amazonaws.com , Теперь у вас есть два ведра вместо одного. Ничего страшного, но в веб-приложениях сложнее, чем то, что абсолютно необходимо - отстой.
Андрей

7
Привет, я на самом деле парень, который написал ссылочную ссылку, которую вы положили туда "Joonha". Маленькая жемчужина, которую нельзя пропустить, - это использование этой техники + "//" в качестве начала протокола. В моем бизнесе по развитию электронной коммерции мы делаем ссылки на URL-адреса с помощью «//» вместо «https: // или« http: // », потому что нам никогда не нужно заботиться об этом
Джейсон Себринг,

4
Кажется, это больше не работает, я получил ошибку PermanentRedirect.
Пауло Кассаретто

5
Смотрите мой новый ответ относительно того, почему это работает для некоторых людей, а не для других. Имеет значение, в каком регионе находятся ваши ведра.
Нейт,

47

Ответ Payton109 является правильным, если вы находитесь в регионе US-EAST-1 по умолчанию. Если ваша корзина находится в другом регионе, используйте немного другой URL:

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

Где <region>находится название местоположения ковша. Например, если ваше ведро находится в us-west-2(Орегон) регионе, вы можете сделать это:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset

1
При использовании DNS-записи CNAME речь идет только о разрешении домена, поэтому вы не можете перенаправить на URL с путем. Смотрите также: stackoverflow.com/questions/32714351/…
Себастьен Лорбер

Это работает для меня и является наиболее полным ответом.
besimple

2
Это хорошо, но в обход статических правил хостинга веб-сайтов, таких как правила перенаправления в index.html
Ким Т

Это идеальное решение для веб-разработчиков без команды devops или sys-admin. Конечно, у ваших активов не будет элегантного домена, но сколько клиентов проверяют html или лежащие в его основе запросы и tsk tsk tsk по URL домена? Не много! Получение ваших статических ресурсов из вашего приложения на S3 - это отличный первый шаг.
stwr667

8

Как указывалось ранее, это невозможно сделать напрямую, но вы можете настроить Apache или nginx + SSL для экземпляра EC2, указать для него CNAME желаемый домен и обратный прокси-сервер для URL-адресов S3 (не пользовательских доменов).


Один из способов найти полный путь SSL к ресурсу S3 - это развернуть его с помощью консоли AWS. Полный путь отображается внизу вкладки Обзор.
Эрик Гилбертсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.