2010-06-15 1 views
157

Я видел несколько других вопросов, касающихся этого, без каких-либо реальных ответов или информации (или так оно и появилось).Amazon S3 - HTTPS/SSL - Возможно ли это?

У меня есть изображение здесь:
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 не работал.

Как это сделать?

+0

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

+0

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

+0

Этот последний [URL] (https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg) работает для меня, хотя он поставляется с ошибкой сертификата, которая, вероятно, будет проблемой для вас –

ответ

163

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

Здравствуйте,

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

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

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

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

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

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

Надеюсь, что помогает. Сообщите нам, если у вас есть другие вопросы.

Amazon Web Services

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


UPDATE 10/2/2012

От @mpoisot:

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


UPDATE 6/17/2013

От: Lust @ Джозеф

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

+20

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

+0

Я предполагаю, что последний абзац также является частью официального ответа. thx для обмена, я пришел в stackoverflow, чтобы задать тот же вопрос. – Devrim

+0

Последний абзац не является частью официального ответа, рад, что я мог бы помочь! –

107

Я знаю его через год после того, как тот факт, но с помощью этого решает его: 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).

+1

Это отличный совет. И, беря протокол, хорошо работает и для POST! – joet3ch

+15

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

+10

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

40

Ответы 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 
+0

При использовании DNS-записи CNAME речь идет только о разрешении домена, поэтому вы не можете перенаправлять URL-адрес с помощью пути. См. также: http://stackoverflow.com/ вопросы/32714351/amazon-s3-using-dns-alias-to-bucket-https-at-same-time –

+0

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

+1

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

6

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