Як налаштувати SSL для відра Amazon S3


142

Я використовую відро Amazon S3 для завантаження та завантаження даних за допомогою мого додатка .NET. Тепер моє питання: я хочу отримати доступ до свого відра S3 за допомогою SSL. Чи можливо реалізувати SSL для відра Amazon s3?


Відповіді:


151

Ви можете отримати доступ до своїх файлів через SSL так:

https://s3.amazonaws.com/bucket_name/images/logo.gif

Якщо ви використовуєте спеціальний домен для свого відра, ви можете використовувати S3 та CloudFront разом зі своїм власним сертифікатом SSL (або генерувати безкоштовний за допомогою менеджера сертифікатів Amazon): http://aws.amazon.com/cloudfront/custom-ssl- домени /


42
Це не зовсім вірно. Ви можете використовувати імена відра без крапок: this-is-my-awesome-bucket.s3.amazonaws.com Amazon має сертифікат підстановки. Оскільки ви не можете використовувати крапки, ви не можете мати домен CNAME, що вказує на ваше відро.
Docunext

4
стежте за іменами відра, що містять періоди! SSL не працюватиме на пристроях iOS, але в Chrome буде добре працювати. Див stackoverflow.com/questions/3048236 / ...
Simon_Weaver

1
Amazon CloudFront зробить це за вас.
Грег

3
Щоб мати імена відроків точок нотацій (щоб ви могли використовувати псевдоніми маршруту 53) і ви хочете вводити об'єкти PUT через REST, переконайтесь, що ім'я хоста відповідає регіону. Наприклад, у моєму відрі є, us-west-2тому ім'я хоста насправді в s3-us-west-2.amazonaws.comіншому випадку ви отримуєте помилку.
noetix

1
без хмарного фронту ми можемо цього досягти?
Арун Кумар

28

Сертифікати SSL на замовлення домену щойно були додані сьогодні за 600 доларів на місяць / місяць. Підпишіться на запрошення нижче: http://aws.amazon.com/cloudfront/custom-ssl-domains/

Оновлення : надані клієнтом сертифікати SNI тепер доступні без додаткової плати. Набагато дешевше, ніж 600 доларів на місяць, а з ХР майже знищений, він повинен працювати добре для більшості випадків використання.

@skalee AWS має механізм для досягнення того, що вимагає плакат: "реалізуйте SSL для відра Amazon s3", це називається CloudFront. Я читаю "впроваджувати" як "використовувати мої SSL-серти", а не "просто ставити S на URL-адресу HTTP, що я впевнений, що ОП міг би передбачити.

Оскільки CloudFront коштує точно так само, як S3 ($ 0,12 / ГБ), але має безліч додаткових функцій навколо SSL AND дозволяє додавати свій власний сервер SNI без додаткових витрат, це очевидно виправлення для "впровадження SSL" у вашому домені.


64
CloudFront - це не S3.
skalee

6
@skalee Правильно, але якщо ви хочете отримати доступ до нього через домен зі спеціальними SSL-сертифікатами, як це вимагає ОП, ви можете встановити користувальницькі сервери-сервери CNAME таким чином і отримати доступ до нього через CF.
Йосип Похоть

2
Наразі я створив два CNAME: static-s3 та static-cf, перший вказує прямо на мій S3, другий на CF. Перший не може підтримувати SSL, другий може, але це CF, а не S3, як вказує skalee. Це найкраще, що я думаю, що ми можемо зробити зараз.
Небезпека

2
Я думаю, їм доведеться якось компенсувати більш дешеві витрати на зберігання. принаймні, це проціджене, хоча якщо ви використовуєте свій сертифікат SSL лише 1 годину на місяць, це лише 20 доларів ;-)
Simon_Weaver

1
@ Elegant.Scripting Якщо у вас є виділений сертифікат SSL (а не сертифікат SNI), то для цієї машини потрібен спеціалізований IP, який несе витрати. імовірно, вам потрібен спеціалізований IP для кожного місця по всьому світу, де S3 розміщує ваші дані. Так що додає. Але я думаю, що в основному це не потрібно, щоб люди з посади не потребували цього, і вони можуть підняти ціну тим, хто це робить. Якщо вам не потрібно підтримувати IE6, то вам слід бути в порядку з сертифікатом SNI під CloudFront.
Simon_Weaver

11

Я виявив, що ви можете це легко зробити через сервіс Cloud Flare.

Налаштуйте відро, увімкніть веб-хостинг на відро та вкажіть потрібну CNAME на цю кінцеву точку через Cloudflare ... і заплатіть за послугу, звичайно ... але $ 5- $ 20 VS $ 600 набагато простіше на шлунок.

Повна інформація тут: https://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/


1
Спробуйте мій гід тут: engaging.io / ...
Ральф Vugts

3

Якщо вам це справді потрібно, розгляньте перенаправлення.

Наприклад, за запитом assets.my-domain.example.com/path/to/fileви можете виконати переадресацію 301 або 302 на my-bucket-name.s3.amazonaws.com/path/to/fileабо s3.amazonaws.com/my-bucket-name/path/to/file(будь ласка, пам’ятайте, що в першому випадку my-bucket-nameне може містити жодних крапок, інакше це не збігатиметься із *.s3.amazonaws.com, s3.amazonaws.comзаявленим у сертифікаті S3).

Не перевірено, але я вважаю, що це спрацювало б. Однак я бачу небагато готчей.

Перший досить очевидний, додатковий запит отримати це перенаправлення. І я сумніваюся, що ви могли б використовувати сервер перенаправлення, наданий реєстратором вашого доменного імені - вам доведеться якось завантажити туди відповідний сертифікат - тому для цього вам доведеться використовувати власний сервер.

Другий з них полягає в тому, що ви можете мати URL-адреси з доменним іменем у вихідному коді сторінки, але коли, наприклад, користувач відкриє рис на окремій вкладці, тоді в адресному рядку відображатиметься цільовий URL.


2
Я не впевнений, але думаю, що це може спричинити проблеми з CORS.
xdhmoore

3

Це неможливо безпосередньо з S3, але ви можете створити розповсюдження Cloud Front з вашого відра. Потім перейдіть до менеджера сертифікатів і запитайте сертифікат. Амазонка дарує їх безкоштовно. Коли ви успішно підтвердили сертифікацію, призначте її дистрибутиву Cloud Front. Також не забудьте встановити правило для перенаправлення http на https.

Я розміщую пару статичних веб-сайтів на Amazon S3, як і мій особистий веб-сайт, якому я призначив сертифікат SSL, оскільки вони мають розповсюдження Cloud Front.


і як ви призначили ім'я домену?
netshark1000

Спочатку перейдіть до менеджера сертифікатів і запитайте новий сертифікат. Додайте туди свій домен, а також додайте туди піддомени, якщо потрібно. Не дуже боляче розміщувати там піддомени, тому, можливо, просто поставте туди example.com та * .example.com.
Міка Куяпелто

0

Як згадувалося раніше, ви не можете створити безкоштовні сертифікати для відра S3. Однак ви можете створити дистрибутив Cloud Front і замість цього призначити сертифікат для Cloud Front. Ви запитаєте сертифікат для свого домену, а потім просто призначите його дистрибутиву Cloud Front у налаштуваннях Cloud Front. Я використовував цей метод для обслуговування статичних веб-сайтів через SSL, а також для подання статичних файлів.

Для створення статичного веб-сайту Amazon - це найкраще місце. Дійсно отримати статичний веб-сайт із SSL.


2
Для всіх, хто потрапляє сюди за допомогою Google: Не забудьте створити свій сертифікат AWS (також) у регіоні Н. Вірджинія. Інакше ви не зможете вибрати його у своєму розповсюдженні CF
KLoozen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.