AWS CloudFront и HTTPS

darkthor

Новичок
Добрый день.
Надеюсь на форуме найдется человек, разбирающийся с AWS, который сможет подсказать как правильно решить проблему.
Для статики нашего приложения мы используем Cloudfront. Когда обращаемся через HTTP то все хорошо, когда обращаемся по HTTPS то часть адресов не открываются, и выдают вот такую ошибку: http://take.ms/SOKPQ
Стандартно у них там работает свой сертификат. Может быть нужно настраивать еще балансер и инстансы для доступа по https. Разве недостаточно одного cloudfront?
Если кто-то разбирается в этом и знает с чем это может быть связано, буду рад любым советам и идеям. Спасибо.
 
Последнее редактирование:

флоппик

promotor fidei
Команда форума
Партнер клуба
А статика из s3 бакета, или с ориджина берется?
Если с ориджина, то нужен сертификат конкретно тех, кого CF поддерживает.
 

darkthor

Новичок
С ориджина. CF ссылается на балансер, который в свою очередь с инстами уже работает.
То есть получается что если я обращаюсь к CF через https то CF обращается к балансеру тоже через https? На сколько я понял по докам, можно сделать так чтобы CF всегда обращался к балансеру по ssl. А можно сделать наоборот? Чтобы CF обращался к балансеру по http не зависимо от того как обратились к самому CF?

Уж очень не хочется возиться с этими сертификатами :(

Вообще все это из-за vk.com. Они требуют чтобы приложение открывалось по https. Приложение у нас в iframe, в котором просто html страница открывается, которая должна кешироваться в CF.
То есть получается что нам сертификат нужен только для CF. Тем более что он уже есть у амазона свой для CF специальный. Он же по дефолту там и подрубается.
 

darkthor

Новичок
AnrDaemon, это конечно все хорошо. Но не понимаю как это мне может помочь в настройке CloudFront?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
То есть получается что если я обращаюсь к CF через https то CF обращается к балансеру тоже через https? На сколько я понял по докам, можно сделать так чтобы CF всегда обращался к балансеру по ssl. А можно сделать наоборот? Чтобы CF обращался к балансеру по http не зависимо от того как обратились к самому CF?
Именно так можно и нужно. Я к сожалению, щас прям не скажу, как оно называется, но там прям галка была, что-то вроде "Connect to origin plain http only" - тогда ему побоку серт.
А то что фейлится только часть запросов, это вопрос кеша CF - если что-то успешно запросили через http один раз, и оно лежит на отдаче уже, оно отдастся успешно и через https - если нет, то нет.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
"Origin Protocol Policy" называется, нужно выставить "HTTP Only". Изменения не мгновенные, если что, мин 15-30 может быть нужно подождать.
 

darkthor

Новичок
флоппик, Спасибо. Сейчас буду пробовать.

А то что фейлится только часть запросов, это вопрос кеша CF - если что-то успешно запросили через http один раз, и оно лежит на отдаче уже, оно отдастся успешно и через https - если нет, то нет.
Вот этот момент не очень понял. То есть через http он может подтянуть новый файл и закешировать его. А по https он может только из кеша брать, а новый не подтянет? Как-то странно :(
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Вот этот момент не очень понял. То есть через http он может подтянуть новый файл и закешировать его. А по https он может только из кеша брать, а новый не подтянет? Как-то странно :(
А по https ему ты новый не отдаешь, поэтому и не тянет. По умолчанию протокол запроса к ориджину (_если_ его надо делать) совпадает с тем протоколом, по которому запрошен контент. В случае, если что-то лежит в кеше, к ориджину он же вообще не ходит.
 

darkthor

Новичок
AnrDaemon, просто получается зачем настраивать ssl на инсте, если можно это сделать на точке входа, просто правильно настроив амазоновский сервис. К самому инстансу юзеры не обращаются никогда.

флоппик, ну а если например я обновил картинку на инстах, я же могу обновить кэш в CF просто изменив url например так:
http://123123123.cloudfront.net/images/logo.png?v2
или https://123123123.cloudfront.net/images/logo.png?v2
получается же так? Учитывая что я поставлю Origin Protocol Policy = HTTP Only.
 

AnrDaemon

Продвинутый новичок
AnrDaemon, просто получается зачем настраивать ssl на инсте, если можно это сделать на точке входа, просто правильно настроив амазоновский сервис.
Потому что HTTP протокол перехватывается и манипулируется как хочешь.
google:MITM+attack
 

darkthor

Новичок
AnrDaemon, спасибо. Я это учту. А разве можно его как-то перехватить, если это уже происходит на стороне FC? То есть его перехватить может только сам amazon получается.
В любом случае сейчас у меня цель получить аппрув от vk.com. Надо безопасностью можно подумать отдельно.
 

AnrDaemon

Продвинутый новичок
У меня нет дурацкой привычки доверять линиям связи, если только я не сплю в гамаке, натянутом между роутером и сервером.
 
Сверху