web-dev-qa-db-fra.com

Désactiver HTTP / 2 / SPDY dans HTTP.SYS et IIS dans Windows 10

Lors des tests sur Windows 10, nous avons constaté de nombreuses incompatibilités de navigateur que je n'avais jamais vues auparavant avec les versions antérieures de Windows. Certains navigateurs fonctionneraient, mais d'autres signaleraient ERR_SPDY_PROTOCOL_ERROR. Ma recherche rapide de ce problème a montré que je n'étais pas seul.

Mon application utilise WWSAPI et HTTP.SYS avec HTTPS (TLS). Est-ce que quelqu'un sait comment désactiver SPDY/HTTP/2 dans WWSAPI (qui utilise HTTP.SYS) sur Windows 10?

J'aimerais également obtenir une liste complète à jour de Windows 10 des paramètres de registre pour HTTP.SYS.

Voir ci-dessous pour ma réponse à cela. J'espère que cela aide aussi les autres.

Marque

13
MarkB_V

EDIT: la désactivation de HTTP/2 ralentira considérablement la vitesse de votre site Web, ce n'est pas une solution permanente. Le problème s'est avéré être causé par notre application Web envoyant un mauvais en-tête d'authentification au serveur.

Pour toujours désactiver HTTP/2, voir ci-dessous.

(OP a donné une réponse utile, mais dans la question. J'ai proposé la réponse):

J'ai résolu mon problème HTTP/2 en configurant Windows 10 HTTP.SYS dans le registre pour désactiver HTTP/2. Étant donné que je n'ai trouvé aucune information nulle part, j'ai pensé partager ma solution à ce problème ici aussi. J'aimerais cependant trouver un moyen de le faire via WWSAPI.

Si je désactivais la prise en charge SPDY dans le navigateur client, cela fonctionnerait, mais je voulais désactiver cette option côté serveur (HTTP.SYS sur Windows 10) afin qu'il ne négocie pas HTTP/2 mais utilise l'ancienne version plus compatible. HTTP (S).

Découverte de deux nouveaux paramètres de registre pour HTTP.SYS dans:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • EnableHttp2TlsREG_DWORD0
  • EnableHttp2CleartextREG_DWORD0

L'ajout de ces valeurs et la définition de deux à 0 dans Windows 10 ont entraîné la non-négociation de HTTP/2/SPDY et mes problèmes ERR_SPDY_PROTOCOL_ERROR ont disparu sans nécessiter de modifications de configuration du navigateur. Je ne suggère pas qu'il y ait un problème avec Windows 10 HTTP/2, les problèmes peuvent être avec certains navigateurs.

Cela peut fonctionner pour IIS aussi, mais je ne l'utilise pas donc je n'ai pas essayé et en tout cas il peut y avoir une meilleure façon de le faire dans IIS.

J'espère que cela aide aussi les autres.

Je peux confirmer que cela aide pour IIS aussi, mais je devais redémarrer mon ordinateur.

21
Jan Willem B