Как использовать заголовки STS с Traefik при использовании Docker - PullRequest
1 голос
/ 07 октября 2019

Это проблема, с которой я боролся в течение нескольких дней, но я не смог найти никакой помощи в стеке, даже близко к ней. Я надеюсь помочь людям с подобными проблемами в будущем. Любые уточнения по этому вопросу / ответу очень приветствуются.

Я пытался установить STS-заголовки для http-запросов при использовании Traefik в качестве прокси вокружение Docker . Так или иначе, независимо от того, как я пытаюсь установить заголовки, мой браузер (Google Chrome) игнорирует их. Что я делаю не так?

1 Ответ

0 голосов
/ 07 октября 2019

Я боролся с заголовками HSTS в Traefik в течение нескольких дней, когда я узнал кое-что важное о HSTS:

Ваш браузер будет игнорировать любые заголовки STS, когда используемый вами сертификат считается ненадежным / безопаснымваш браузерВы можете проверить это (в Chrome) с помощью вкладки безопасности в инструментах разработчика.

Чтобы HSTS (HTTP Strict Transport Security) работал, мне пришлось решить следующие несколько вещей в моем конкретном сценарии:

  • Сертификат, который я использовал для разработки,был самоподписанный и установлен на мою машину. Но поскольку он был самоподписанным, он не был помещен в каталог « Доверенные корневые центры сертификации ». Мой браузер пожаловался, что не может найти мой сертификат в этом каталоге, поэтому мне пришлось поместить его туда, иначе браузер все равно будет считать сертификат небезопасным. Обратите внимание, что это было предназначено только для целей разработки, официальные сертификаты были в пути.

  • Сначала я создал свой сертификат, поместив свой домен в CN (Common Name) раздел. В настоящее время браузер игнорирует этот раздел и ищет SAN (альтернативные имена субъектов). Я должен был создать новый сертификат с моим доменом в этом разделе.

Эти две вещи были тем, что я пропустил, после решения этих проблем, мои заголовки STS (используемые в метках обслуживания docker-compose) Работали. Ярлыки ( Traefik v1.7 ) выглядят следующим образом:

my_service:
    deploy:
      labels:
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.STSSeconds=31536000"

Надеюсь, это кому-нибудь поможет.

...