Reverse Proxy PfSense : activer le HTTP/2 dans HAProxy

I. Présentation

Dans ce tutoriel, nous allons voir comment activer le protocole HTTP/2 sur un reverse proxy HAProxy installé sur un serveur PfSense. Même si l'on peut encore utiliser HTTP/1.1 pour son site Web, il est fortement recommandé d'activer la prise en charge de HTTP/2 (disponible depuis plusieurs années) pour bénéficier des nouveautés de cette version, notamment :

  • Compression des en-têtes HTTP pour accélérer la vitesse de chargement des pages
  • Multiplexage pour effectuer plusieurs échanges en simultanées sur une même connexion TCP
  • Priorisation des requêtes
  • Server Push : pour une seule requête d'un client, le serveur peut envoyer plusieurs réponses
  • Etc.

Il faut savoir que les navigateurs tels que Firefox, Chrome, Safari, etc... prennent en charge le HTTP/2 uniquement avec un certificat SSL. Cela n'est pas étonnant dans le sens où le HTTPS s'est démocratisé depuis plusieurs années maintenant.

Cet article vient en complément de deux autres articles mis en ligne récemment :

Si vous avez mis en place un reverse proxy HTTPS en suivant mon tutoriel, alors vous avez tout intérêt à compléter votre configuration via l'activation du HTTP/2 comme nous allons le voir aujourd'hui. Dans tous les cas, je ne reviendrai pas sur la mise en place du reverse proxy en lui-même.

II. Activer le HTTP/2 dans HAProxy

Connectez-vous à l'interface Pfsense, puis sous "Services", cliquez sur "HAProxy". Vous allez arriver sur l'onglet "Frontend" dans HAProxy : cela tombe bien, car c'est justement la configuration du frontend qu'il va falloir ajuster.

Remarque : cette configuration s'applique uniquement sur les frontends HAProxy qui fonctionne en HTTPS avec gestion du certificat sur le reverse proxy.

Éditez votre frontend et descendez dans la page, jusqu'à la section "SSL Offloading" où vouez allez trouver l'option suivante : "Advanced certificate specific ssl options". Il faut que l'on renseigne cette option avec la valeur suivante :

alpn h2,http/1.1

HAProxy HTTP/2

Grâce à cette valeur, on précise que le reverse proxy prend en charge HTTP/2 ainsi que HTTP/1.1 : de quoi rester compatible sans difficulté avec les machines plus anciennes.

Il ne reste plus qu'à sauvegarder et à recharger HAProxy pour profiter de ce changement dans la configuration ! Si vous avez plusieurs frontends, vous devez répéter l'opération à chaque fois.

Côté serveur Web, activez également HTTP/2 pour qu'il soit actif sur toute la chaîne. Sur un serveur Web Apache, c'est tout simple :

sudo a2enmod http2
sudo systemctl restart apache2

III. Tester que HTTP/2 est bien actif

À l'aide de l'outil "curl", nous pouvons tester facilement notre site Web derrière le reverse proxy pour voir si HTTP/2 est opérationnel. La commande ci-dessous fonctionne très bien avec PowerShell 7 mais aussi sur une machine Linux en installant le paquet "curl". Il suffit de remplacer "www.domaine.com" par votre nom de domaine.

curl -I -k --http2 https://www.domaine.com

Cette commande permet d'afficher l'en-tête HTTP, et au début nous pouvons voir "HTTP/2 200" cela signifie que la page s'est correctement chargée et que nous avons bien communiqué avec le serveur en HTTP/2 ! Parfait !

Curl tester HTTP/2

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.