Конечная точка сайта Static S3 не перенаправляется по HTTPS - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь (и в основном преуспел) в настройке статического веб-сайта на S3, который обслуживается через URL-адреса www.example.com и example.com (оба эти приложения работают нормально по https с использованием сертификата, предоставленного через ACM).Оба этих домена указывают на настройку распределения облачного фронта с корзиной S3 в качестве конечной точки на маршруте 53.

У меня также есть несколько экземпляров Elastic Beanstalk, которые обслуживаются через разные поддомены.app.example.com указывает на одну обслуживающую страницу, отличную от целевой страницы, а api.example.com обслуживает API.Все это прекрасно работает и настроено через Route 53 для поддоменов.

Единственное, что не работает, у меня есть следующие настройки для перенаправления:

<RoutingRules>    
<RoutingRule>
    <Condition>
      <KeyPrefixEquals>login/</KeyPrefixEquals>
    </Condition>
    <Redirect>
    <Protocol>https</Protocol>
      <HostName>app.example.com</HostName>
      <ReplaceKeyPrefixWith>login/</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

Так что яЯ надеюсь, что случится так, что когда кто-то посещает (www.) example.com, он переходит на целевую страницу, которая размещена на S3, а когда он переходит на (www.) example.com/login, он переходит на (www.) app.example..com / login (который указывает на ELB).Это НЕ работает, когда я использую HTTPS для доступа к https://(www.)example.com/login, но работает, если я просто захожу на свой URL-адрес корзины s3 через http: http://example.com.s3 -website.ca-central-1.amazonaws.com / login Это успешно перенаправляет на app.example.com/login.

Не знаете, чего мне не хватает, но правила перенаправления в свойствах статического веб-сайта S3 не работают через HTTPS, поскольку имя хоста отличается от имени хоста фактической корзины s3?Это все, о чем я могу думать, так как он работает нормально, если я получаю доступ к конечной точке из URL-адреса s3, не проходя через мое доменное имя с сертификатом SSL.

1 Ответ

0 голосов
/ 14 мая 2018

Не точный ответ на мой исходный вопрос, но есть другой способ сделать то, что я пытаюсь сделать, настроив дистрибутив Cloudfront (как в исходном вопросе), но добавив второе начало - app.example.com сервер, а затем настройте список вариантов поведения в распределении, а URL-адрес перенаправляет определенные пути URL либо к источнику S3, либо к источнику сервера приложений.

/css/* - s3
/js/* - s3
/login* - app server
/dashboard* - app server

и т.д.. У меня есть настройка * path, указывающая на сервер приложений, поскольку моя целевая страница статична и имеет только 5 маршрутов.

...