Utiliser Let’s Encrypt avec Nginx

Let’s Encrypt est disponible en bêta publique et c’est géniale, car les sites auto-hébergés vont enfin pouvoir s’équiper simplement et gratuitement de certificat SSL.

De mon point de vue c’est hyper-pratique pour le grand publique et les personnes qui n’aiment pas se prendre la tête mais appréciant monter des services de stockage tels que « Owncloud, Seafile, Pydio ». Ou qui ont un site web qu’ils souhaitent simplement rendre accessible via https.

Certes on pouvait déjà le faire, mais le message suivant apparaît dans les navigateur, si une autorité de certification comme let’s encrypt n’est pas utilisé:

2011-01-12-06-11-05-60d3a2

Let’s Encrypt est une autorité de certification lancée le 3 décembre 2015 (Bêta Version Publique). Cette autorité fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d’un processus automatisé destiné à se passer du processus complexe actuel impliquant la création manuelle, la validation, la signature, l’installation et le renouvellement des certificats pour la sécurisation des sites internet.

Le manuel d’utilisation est disponible ici: https://letsencrypt.readthedocs.org/en/latest/using.html


 

Voyons voir comment l’utiliser sur un serveur Debian avec un site tournant sous nginx:

Installer git:

Télécharger let’s encrypt et se rendre dans le dossier:

Couper le service nginx:

let’s encrypt lors de la génération du certificat va avoir besoin d’utiliser le port 443, si nginx (ou tout autre services) tourne déjà sur ce port, il est nécessaire de l’arrêter.

Lancer let’s encrypt

Une interface va apparaître, pour vous demander 2 informations:

  • Une adresse e-mail de contact
  • Le nom du domaine que vous allez adressé avec ce certificat.

Finalement vous obtiendrez 2 certificats disponible dans le répertoire:

  • /etc/letsencrypt/live/mondomaine.fr/
    • fullchain.pem
    • privkey.pem

Maintenant il faut modifier votre fichier de configuration de site nginx:

Ici deux valeurs à modifier si votre site était déjà en https:

Finalement on relance nginx:


Et voilà c’est terminé.

Bien sûr si ce service ne vous convient pas, vous avez toujours à votre disposition: StartSSL