Включите http/2 на Windows Server 2019

Вопрос или проблема

Что бы я ни пробовал, я не могу заставить свой веб-сайт обслуживать файлы (например, изображения, js и т. д.) по http/2, он продолжает обслуживать по http/1.

Что я пробовал:

  1. С помощью IIS Crypto я настроил это (даже отключил tls1.0 и tls1.1):
    вставьте описание изображения здесь

  2. Отключил поддержку tls1.0 и tls1.1 через настройки Internet Explorer: https://markcz.wordpress.com/2014/10/26/full-http2-support-in-windows-10/

  3. Принудил https через web.config:

     <!-- Перенаправление HTTP на HTTPS для www -->
     <rule name="Принудить HTTPS для www" stopProcessing="true">
       <match url=".*" />
       <conditions>
         <add input="{HTTPS}" pattern="off" ignoreCase="true" />
         <add input="{HTTP_HOST}" pattern="^www\.example\.com$" />
       </conditions>
       <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
     </rule>
    
  4. Предоставил группе IIS_IUSRS права на чтение в корневом каталоге

  5. Включил анонимную аутентификацию для моего веб-сайта

  6. У меня есть https привязки для моего веб-сайта: отключил “Отключить HTTP/2”, включил “Требовать указание имени сервера”, привязано к порту 443, IP-адрес установлен на “Все не назначенные”

Ответ или решение

Для включения HTTP/2 на Windows Server 2019, необходимо убедиться, что все необходимые настройки сделаны правильно. Я вижу, что вы уже предприняли несколько шагов, но давайте еще раз проверим все шаги и убедимся, что ничего не упущено.

  1. Используйте правильные настройки шифрования:
    Убедитесь, что на вашем сервере настроены только безопасные протоколы TLS. Хотя вы уже использовали IIS Crypto, рекомендую также проверить список шифров для TLS 1.2 и убедиться, что только современные и безопасные шифры активны.

  2. Настройка IIS:

    • Убедитесь, что HTTP/2 включен в IIS. В Windows Server 2016 и более поздних версиях HTTP/2 включается по умолчанию. Вы можете проверить, включен ли он, изменив настройки в реестре. Откройте редактор реестра (regedit) и пройдите по следующему пути:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS\Parameters

      Здесь убедитесь, что значение EnableHttp2 установлено на 1. Если его нет, создайте DWORD-значение с именем EnableHttp2 и установите его значение на 1.

  3. Проверка HTTPS:
    Убедитесь, что у вас есть корректный сертификат и что он правильно настроен. HTTP/2 работает только по HTTPS. На вашем сайте должна быть активна поддержка HTTPS.

  4. Настройки привязки:
    Убедитесь, что в настройках привязки вашего сайта в IIS:

    • Проверка, что "Disable HTTP/2" не отмечено.
    • Проверка, что установлен флажок "Require Server Name Indication".
    • Привязка к порту 443 и IP-адресу "Все допустимые".
  5. Изменение конфигурации приложения:
    Убедитесь, что в web.config вашего приложения ничего не блокирует использование HTTP/2 и что ваши правила перенаправления настроены корректно. Вы уже сделали перенаправление с HTTP на HTTPS, что является правильным шагом.

  6. Тестирование:
    После внесения всех изменений перезапустите IIS. Используйте инструменты, такие как Google Chrome Developer Tools, чтобы проверить, используется ли HTTP/2. Откройте вкладку "Сеть" и обновите страницу, затем посмотрите на детали протокола.

  7. Логи и мониторинг:
    Если после всех этих изменений HTTP/2 не активируется, просмотрите логи IIS на предмет ошибок. Это может дать указания на потенциальные проблемы в конфигурации или взаимодействии.

Следуя этим шагам, ваш сайт должен начать обслуживаться по протоколу HTTP/2. Если проблема сохраняется, возможно, стоит рассмотреть возможность дополнительных настроек сети или обратиться к специалистам для диагностики и решения проблемы.

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

Капча загружается...