Почему HTTP/2 на определенном сайте работает в FF, но не работает в Chrome, IE и Edge на одном компьютере с Windows 10?
У меня есть сайт, который работает на Nginx 1.10.0 на сервере Ubuntu 16.04 (OpenSSL 1.0.2h). Я хочу обслуживать этот сайт через HTTP/2, поэтому я настроил Nginx соответствующим образом:
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server
И он отлично работает в FF 47 и Chrome 51 на моем рабочем столе Ubuntu 15.10 в офисе и в тех же браузерах на моем домашнем рабочем столе Ubuntu 15.10.
Однако на моем домашнем компьютере Windows 10 и ноутбук HTTP / 2 работают только в FF. Chrome 51, IE 11 и Edge используют HTTP/1.1 на этом сайте.
Итак, я сбит с толку. Этот сервис сообщает, что мой сайт поддерживает HTTP / 2 и ALPN (что требуется для работы HTTP / 2 в Chrome начиная с версии 51).
Версии и возможности Chrome точно такие же:
HTTPS работает, а панель безопасности в Chrome Dev Tools показывает, что все защищено.
Эта демонстрация в Chrome, IE и Edge отображает сообщение " Этот браузер не поддерживает HTTP / 2. " И " Ваш браузер поддерживает HTTP / 2! " В FF. Но HTTP / 2 на https://medium.com/ прекрасно работает во всех этих браузерах.
Итак, мой вопрос: что происходит и как это исправить?
1 ответ
Используете ли вы антивирусное программное обеспечение (например, Avast) и проверяет ли оно ваш HTTPS-трафик?
Он делает это, действуя как MITM, поэтому вы подключаете его, и он подключается к реальному веб-сайту. И если они поддерживают только http/1 (что, насколько я знаю, они только поддерживают), то это объясняет это. Хотя, как ни странно, не для среднего, если у вас нет исключения для этого.
Должно быть достаточно легко проверить, посмотрев сертификат HTTPS при посещении сайта, чтобы увидеть, был ли он "выдан" вашим локальным сервером Avast.
Если нет, то предложите вам посмотреть на свои шифры, так как HTTP/2 требователен к тому, какие из них он использует. Что-нибудь странное показано на https://www.ssllabs.com/servertest для вашего сайта? Какой шифр он использует для Chrome?