IIS версии 1607 в Windows Server 2016 — как добавить поддержку HTTP Strict Transport Security (HSTS)

Наши серверы работают под управлением Windows Server 2016 с IIS 1607. Насколько я могу судить, это означает, что IIS 10 в системе предшествует версии 1709, где, по-видимому, Microsoft добавила элемент HSTS в элемент SITES, что позволяет упростить механизм настройки. ХСТС.

Да, мы вполне можем обновить наши серверы до Windows Sever 2019 или 2022 в ближайшем будущем, но сейчас мне нужно рассмотреть сценарий Windows Server 2016.

В итоге нахожу эту информацию(https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10-версия-1709/iis-10-версия-1709-hsts), в котором показано, как реализовать HSTS в версии IIS до 1709.

Честно говоря, я ничего из этого не проверял. Мой локальный IIS, на котором я могу протестировать, — это Windows 10 с IIS версии 1889 или около того, и есть замечательный волшебный флажок, который я могу щелкнуть, что позволяет мне легко реализовать HSTS из ссылки HSTS…, которая находится в разделе «Настройка» моего сайта. в диспетчере IIS.

Тем не менее, я не осмеливаюсь касаться других наших сред, в которых правит Windows Server 2016, потому что, хотя у меня есть доступ администратора, я боюсь серьезно облажаться, если внесу несанкционированные изменения. Следовательно, этот вопрос, чтобы я мог понять, что я делаю, прежде чем что-то сломать.

Но меня смущает то, что информационный сайт, на который я ссылаюсь выше, отмечает. Должен ли я реализовать все три предложенных изменения в первом предложенном решении (Решение 1) или сработает только одно из изменений?

Как, согласно информации сайта:

До IIS 10.0 версии 1709 включение HSTS на сервере IIS требовало сложной настройки.

В Решении 1 упоминается три разных раздела web.config. Я не понимаю, требуется ли только один из этих разделов или все три.

Решение 1. Модуль перенаправления HTTP + настраиваемые заголовки

<sites>
    <site name="Contoso-http" id="1" serverAutoStart="true">
        <application path="/" applicationPool="Contoso-http">
            <virtualDirectory path="/" physicalPath="C:\inetpub\Contoso-http" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:80:contoso.com" />
        </bindings>
    </site>
    <site name="Contoso-https" id="2" serverAutoStart="true">
        <application path="/" applicationPool="Contoso-https">
            <virtualDirectory path="/" physicalPath="C:\inetpub\Contoso-https" />
        </application>
        <bindings>
            <binding protocol="https" bindingInformation="*:443:contoso.com" sslFlags="0" />
        </bindings>
    </site>
    <siteDefaults>
        <logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" />
        <traceFailedRequestsLogging directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
    </siteDefaults>
    <applicationDefaults applicationPool="DefaultAppPool" />
    <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

С последующим:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="https://contoso.com" httpResponseStatus="Permanent" />
    </system.webServer>
</configuration>

а потом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Strict-Transport-Security" value="max-age=31536000" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

Мое первоначальное предположение состоит в том, что да, действительно, мне нужно внести все три этих изменения в файл web.config, если я хочу, чтобы HSTS работал с использованием решения 1 для установки IIS до 1709.

я вижу есть Решение 2 для предыдущих установок IIS, но я заинтересован в решении 1, чтобы лучше понять его. Часть моего замешательства заключается в том, что я видел подобную проблему, решенную кем-то другим, просто внедрив одно изменение конфигурации в пользовательские заголовки и ничего больше. Мне любопытно, это все, что мне нужно сделать.

Редактировать: Что касается предлагаемого решения (Включить строгую транспортную безопасность HTTP (HSTS) в IIS 7), то ответ на вопрос есть, по сути, Решение 2.

Одна из причин, по которой я задаю этот вопрос, заключается в том, что я видел изменения в системе, в которой использовалась только часть решения 1 (только часть настраиваемых заголовков), поэтому мне интересно, использовал ли кто-нибудь еще какое-либо решение и опыт реализации.

Я видел, что модуль перезаписи URL-адресов установлен на моем сервере IIS, поэтому я просто выберу решение 2, я думаю, поскольку это ответ на ранее заданный вопрос и кажется намного проще, чем решение 1.

окна iis hsts

Дан7эль

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *