Итак, я наконец-то смог успешно создать веб-сайт https. Это просто запуск шаблона веб-проекта ASP.NET. У меня есть сертификат, и он добавляется в ELB (Elastic Load Balancer - classic) в AWS. Моя среда работает так, что я могу перейти к https://www.mvc.cloudy -skies.org и она безопасна. Это потрясающе! Однако остаются две проблемы:
1 - вы все равно можете просто перейти на http: //, и это работает. Не идеально.
2 - У меня есть аутентификация Azure AD через промежуточное ПО OWIN. Это прекрасно работает, но, несмотря на указание HTTPS в URL-адресе для перенаправления после входа, я перенаправлен обратно на HTTP-версию сайта.
Может кто-нибудь помочь здесь, пожалуйста? Я в недоумении. Вот как у меня настроены слушатели в среде Elastic Beanstalk (Load Balancer)
Я попытался добавить перенаправления в Web.Config (например, *
).
<!--<rewrite>
<rules>
<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" negate="true" />
<add input="{REMOTE_HOST}" pattern="localhost" negate="true" />
<add input="{REMOTE_ADDR}" pattern="127.0.0.1" negate="true" />
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>-->
Однако это приводит к сбою развертывания Elastic Beanstalk при обновлении из-за сбоя проверки работоспособности. Я даже пытался создать базовую HTML-страницу в корне решения и использовать ее для проверки работоспособности, но она все равно не работает. Что-то с указанием перенаправления в web.config не очень хорошо.
Конечно, это действительно просто, чтобы заставить пользователя соответствовать HTTPS?