Par défaut lorsque vous installez NGinx depuis les dépôts officiels ce dernier est compilé avec l'une des versions 1.0.1 d'OpenSSL cependant les librairies OpenSSL ne supportent le protocole ALPN que depuis les versions 1.0.2. C'est l'extension TLS NPN qui est alors utilisée ce qui se révélera problématique puisque Google a annoncé le 11 Février 2016 que Chrome ne supporterait plus le protocole NPN à partir du 15 Mai 2016.


Activer le support du protocole ALPN sur NGinx

OpenSSL et ses librairies ne sont pas disponibles dans leur version 1.0.2 sur les dépôts stables de Debian, nous allons devoir utiliser les dépôts stretch. Commençons donc par créer une policy APT qui nous permettra d'installer la version testing d'un paquet si et seulement si nous en faisons la demande.
nano /etc/apt/apt.conf.d/99defaultrelease

Collez la ligne suivante dans ce nouveau fichier et sauvegardez le
APT::Default-Release "jessie";

Maintenant modifiez votre fichier sources.list
nano /etc/apt/sources.list

Ajoutez les dépôts testing
#Stretch - OpenSSL
deb http://mirrors.kernel.org/debian/ stretch main
deb-src http://mirrors.kernel.org/debian/ stretch main

Mettez à jour la liste des paquets disponibles
apt-get update

Installez OpenSSL et ses librairies depuis les dépôts testing
apt-get install -t stretch openssl libssl-dev



Compiler NGinx avec le support du protocole ALPN
Configuration du dépôt officiel NGinx
Afin de pouvoir récupérer la dernière version de NGinx et ses sources nous allons devoir ajouter le dépôt officiel de NGinx. Lançons donc les commandes suivantes
echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list

Récupérons la clé GPG qui permet de signer les paquets
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

Nous pouvons mettre la liste des paquets à jour
apt-get update

Installation des dépendances
Installons les paquets requis pour pouvoir compiler
apt-get -y install build-essential devscripts debhelper libparse-debcontrol-perl zlib1g-dev libpcre3 libpcre3-dev unzip dpkg-dev openssl libssl-dev libperl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev



Meme chose mais pour NGinx
apt-get build-dep nginx



Téléchargement des sources
Téléchargeons les sources NGinx
cd /tmp
apt-get source nginx


Vous devriez alors récupérer plusieurs fichiers et un dossier contenant les sources
root@noobunbox:/tmp# ls
nginx-1.9.12 
nginx_1.9.12-1~jessie.debian.tar.xz 
nginx_1.9.12.orig.tar.gz
nginx_1.9.12-1~jessie.dsc


Compilation
Avant de lancer la compilation en elle même nous allons ajouter une entrée au changelog
cd nginx-1.9.12
dch -i "ALPN Support"


La compilation du paquet peut être lancée via la commande suivante (le processus va prendre quelques minutes)
dpkg-buildpackage -b -us -uc
cd ..



Installation de NGinx avec HTTP 2 et ALPN
Lancez la commande suivante afin d’installer le paquet
dpkg -i nginx_1.9.12-1~{VOTRE-VERSION}_amd64.deb



Afin d’être sûr que votre version de NGinx ne soit pas remplacée par une mise à jour venant des dépôts officiels changeons le statut du paquet
apt-mark hold nginx



Vérifiez que le statut du paquet soit bien en « hold »
dpkg --get-selections | grep nginx






[h]Test de la configuration
[/h]Pour cela il vous suffit de lancer la commande suivante
nginx -V



Si tout va bien vous devriez obtenir le résultat suivant
root@noobunbox:~# nginx -V
nginx version: nginx/1.9.12
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.2f 28 Jan 2016
TLS SNI support enabled

Testez votre site


Sources
https://www.noobunbox.net/serveur/auto-hebergement/installer-nginx-avec-pagespeed-et-http-2
https://www.noobunbox.net/serveur/auto-hebergement/activer-le-support-du-protocole-alpn-sur-nginx
Répondre…