Par défaut lorsque vous compilez NGinx vous utilisez 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. Je vais donc dans ce billet vous expliquer comment vous pouvez activer le support du protocole ALPN sur NGinx.
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.
sudo 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
sudo 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
sudo apt-get update
Installez OpenSSL et ses librairies depuis les dépôts testing
sudo apt-get install -t stretch openssl libssl-dev
Compiler NGinx avec le support du protocole ALPN
Téléchargez les sources d’NGinx , ajoutez des modules si vous le souhaitez puis lancez la compilation comme expliqué dans l’un des articles ci-dessous
- Compiler et installer NGinx avec Brotli
- Installer NGinx avec PageSpeed et HTTP 2
- Installer NGinx avec PageSpeed sous Debian
Testez la configuration via 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
Maintenant tester votre site