Настройка HSTS с AWS (ELB, Kubernetes Nginx и ACM)

Нам необходимо реализовать HSTS в нашей среде без необходимости устанавливать сертификаты вне ACM.

Вот текущая конфигурация:

IGW ›ELB› Экземпляр Kunermetes Nginx

Разгрузка SSL выполняется ELB через AWS Certificate Manager (ACM). Таким образом, после того, как трафик HTTPS попадает в ELB, он расшифровывается и отправляется в Nginx как HTTP.

Nginx имеет следующую конфигурацию:

 server {
        listen 80 default_server;
        if ($http_x_forwarded_proto = 'http'){
            return 301 https://$host$request_uri;
        }

Есть ли способ настроить Nginx для использования сертификатов в AWS Certificate Manager?

Подход, который мы рассматриваем, состоит в том, чтобы настроить ELB для передачи трафика в Nginx через HTTPS, а затем создать прослушиватель на Nginx на порту 443, который затем будет принимать сертификаты из ACM для дешифрования трафика и обработки запроса напрямую, а также может предоставить заголовок HSTS обратно в браузер.

Насколько мы понимаем, это либо такой подход, либо экспорт сертификатов из ACM и их установка в Nginx, что затем требует их защиты различными способами. Если нет другого способа, который мы не рассматривали.

Я хотел бы прочитать ваш отзыв.

Спасибо, Б


person Bal    schedule 13.12.2020    source источник


Ответы (1)


Обратите внимание, если я понимаю, что вы пытаетесь заархивировать, но, насколько я понимаю:

  • HSTS просто добавляет в ответ заголовок «Strict-Transport-Security». Вы можете сделать это с вашей текущей структурой (ELB отправляет HTTP в Nginx, а Nginx добавляет этот заголовок)

  • Боюсь, что экспорт сертификата из ACM и позволить Nginx прослушивать 443 не сработает: ACM не позволит экспортировать закрытые ключи, и вам это нужно из Nginx на сервер на 443

person Dryice Liu    schedule 18.01.2021