SSL avec Let’s Encrypt et Nginx sur Ubuntu 16.04.2 LTS

Let's Encrypt avec Nginx
Let’s Encrypt avec Nginx

Cet article traite de la mise en place d’un serveur SSL (Secure Sockets Layer) et maintenant TLS (Transport Layer Security), protocole de sécurisation des échanges sur Internet. Les données sont chiffrées et sécurisées par l’authentification du serveur et du client. Le protocole SSL/TLS nécessite l’obtention d’un certificat auprès d’une autorité de certification, le plus souvent payant. Let’s Encrypt est une autorité de certification libre, automatisée, ouverte et gratuite. Il s’agit d’un service fourni par Internet Security Research Group (ISRG).

On ouvre un terminal et l’on installe Let’s Encrypt :

Mon domaine est murviel-info.com. Let’s Encrypt créera un dossier /.well-know dans le répertoire du domaine. Il faut autoriser la lecture et l’écriture dans le répertoire, interdit sur une configuration Nginx, le répertoire commençant par un point. On ajoute au fichier de configuration du domaine :

On peut alors installer le certificat SSL/TLS :

Le répertoire /etc/letsencrypt à l’intérieur duquel on trouve le répertoire live  contient les certificats SSL.

On modifie alors le fichier de configuration Nginx du domaine :

Les fichiers restrictions.conf et wordpress.conf viennent d’une configuration exemple sur le codex wordPress et sont localisés dans le répertoire /etc/nginx/conf.d/global/.

  • Ligne 10 : On redirige les requêtes http vers https,
  • Lignes 39 à 44 : On va chercher les clés dans le répertoire /etc/letsencrypt/live/murviel-info.com/,
  • Ligne 49 à 52 : On active un système de ticket dans le fichier /etc/nginx/ssl/ticket.key  pour les sessions que l’on créera par la suite,
  • Ligne 54 : On indique la clé d’échange Diffie Hellman nécessaire dans le protocole SSL que l’on créera également,
  • Ligne 57 : On indique une suite cryptographique (cipher en anglais). C’est une combinaison d’algorithmes utilisés afin d’établir le paramétrage de sécurité pour une connexion SSL/TLS. On peut trouver de telles combinaisons sur des dépôts tels que celui-ci.

Il ne reste plus qu’à redemarrer Nginx :

Pour tester la qualité de la sécurité du domaine, on peut aller sur Qualys SSL Labs.

Pour renouveler les certificats venant à terme, on lance :

Ici, le certificat n’est pas sur le point d’expirer. On peut donc créer une tâche récurrente crontab  pour renouveler automatiquement les certificats.

La commande est lancée tous les dimanches à 3h.

Et hop, le domaine dispose du chiffrage SSL/TLS et est accessible en https sur un serveur Ubuntu/Nginx.

Soumettre un commentaire

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