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 ).

payton109
источник
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
Nate
источник
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. Полный путь отображается внизу вкладки Обзор.
Эрик Гилбертсон