• Accueil
  • Billet
  • Développement
    • Développement
    • Java
    • Laravel
    • WordPress
    • Tests
  • Systèmes
    • Linux
    • macOS
    • Windows
  • NAS
  • SysAdmin
getBrain.fr
  • Accueil
  • Billet
  • Développement
    • Développement
    • Java
    • Laravel
    • WordPress
    • Tests
  • Systèmes
    • Linux
    • macOS
    • Windows
  • NAS
  • SysAdmin
Home  /  Linux • SysAdmin  /  Utiliser Let’s Encrypt avec Nginx sur Ubuntu
14 août 2016

Utiliser Let’s Encrypt avec Nginx sur Ubuntu

Written by Kévin Martin
Linux, SysAdmin https, let's encrypt, nginx, ubuntu Leave a Comment
Partagez !

Bonjour à tous et bienvenue pour un nouveau tutoriel avec aujourd’hui au programme, installer Let’s Encrypt sur votre serveur 😎

Petite info, il vous faut être connecté en root ou être sudoer !

Let’s Encrypt ?

Mais Let’s Encrypt qu’est ce que c’est ? Et bien c’est une toute nouvelle autorité de certification ! Et si on en entend parler partout c’est parce que déjà elle est gratuite (et simple d’installation). On peut donc générer soit-même des certificats SSL signés afin de pouvoir disposer du fameux cadenas vert tant apprécié et rassurant. Il vous faut juste posséder un serveur et un nom de domaine rattaché à ce dernier et enfin le client letsencrypt et c’est tout !

Prêt ? Allons-y !

Installation du client

Comme dit précédemment il nous faut le client nommé letsencrypt pour pouvoir générer notre certificat. Normalement vous avez déjà votre serveur et votre nom de domaine, sinon il va falloir commencer par aller en chercher un 😉

Comme d’habitude on commence par mettre à jour la liste des paquets et on installe git et bc.

sudo apt-get update && sudo apt-get -y install git bc

Et ensuite on clone le dépôt officiel !

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Et hop vous avez installé le client ! C’était simple non ? 🙂

Génération d’un certificat

Afin de générer votre certificat, vous devez avoir le port 80 libre. Cela signifie que vous devez stopper votre serveur web le temps de la génération. Et donc un peu de downtime…

Si vous avez Nginx:

sudo service nginx stop

Et on vérifie la disponibilité de notre port 80:

netstat -na | grep ':80.*LISTEN'

Pas de résultat ? Parfait ! On continue 🙂

Pour générer votre certificat il y a plusieurs façon de faire. En effet, Let’s Encrypt dispose de plusieurs plugin qui permettent de générer d’une manière ou d’une autre, mais nous allons nous utiliser le mode STANDALONE dans un premier temps.

Nous allons donc maintenant nous diriger vers notre répertoire Let’s Encrypt.

cd /opt/letsencrypt

Et on lance l’assistant de création !

./letsencrypt-auto certonly --standalone

Une fois lancé, il suffit de suivre les instructions.

  • Saisissez une adresse email

le-email

  • On accepte le contrat

le-agreement

  • On entre le domaine et les sous domaines à sécuriser

le-domain

Après le petit temps de génération, si vous obtenez un message comme celui ci-dessous c’est que vous avez réussi !

Output:
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your
cert will expire on 2016-03-15. To obtain a new version of the
certificate in the future, simply run Let’s Encrypt again.
– Your account credentials have been saved in your Let’s Encrypt
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Let’s
Encrypt so making regular backups of this folder is ideal.
– If like Let’s Encrypt, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Let’s Encrypt vous a donc généré les fichiers suivant:

  • cert.pem: Le certificat de votre domaine
  • chain.pem: Le certificat Let’s Encrypt
  • fullchain.pem: cert.pem et chain.pem combinés
  • privatekey.pem: La clef privé de votre certificat

Vous les trouverez dans le dossier suivant:

/etc/letsencrypt/live/example.com/

Configuration de Nginx

Bon tout d’abord vous devez posséder Nginx (ce qui est plutôt normal pour un tutoriel sur Nginx). Si vous ne l’avez pas encore et bien vous pouvez l’installer simplement avec apt-get.

apt-get install nginx

Après le processus d’installation, il est temps de modifier notre server block par défaut (configuration d’un domaine) qui se trouve dans le dossier /etc/nginx/site-available/

sudo nano /etc/nginx/sites-available/default

Et on supprime les liens faisant référence au port 80 !

listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

Et on les replaces avec celle du port 443, celui utilisé pour le HTTPS. On va aussi faire référence à nos certificats afin d’avoir notre petit cadenas vert ! Remplacez exemple.com avec votre nom de domaine.

listen 443 ssl;

# Remplacer exemple.com par votre domaine !
server_name exemple.com www.exemple.com;

ssl_certificate /etc/letsencrypt/live/exemple.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exemple.com/privkey.pem;

N’oubliez pas d’indiquer le chemin de votre certificat, ici je me base sur mon tutoriel Let’s Encrypt.

On ajoute aussi les lignes suivantes afin sécuriser encore un peu plus nos échanges HTTPS !

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

Découvrez en plus sur les ciphers sur https://cipherli.st/ !

Et finalement on va rajouter un server block afin de rediriger tout notre traffic non-sécuriser vers notre site sécurisé !

server {
   listen 80;
   server_name example.com;
   return 301 https://$host$request_uri;
}

Je vous conseil de le mettre tout en haut avant le server block SSL 🙂

On sauvegarde et on quitte ! (CTRL + X, o sur nano)

Redémarrage de nginx pour prendre en compte la modification.

sudo service nginx restart

Et normalement tout fonctionne ! #Youpi

Vous pouvez maintenant pleinement profiter de votre site en HTTPS !

À très bientôt les amis !

Partager :

  • Cliquez pour partager sur Twitter(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Facebook(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur LinkedIn(ouvre dans une nouvelle fenêtre)
  • Cliquez pour envoyer par e-mail à un ami(ouvre dans une nouvelle fenêtre)
  • Cliquer pour imprimer(ouvre dans une nouvelle fenêtre)

Articles similaires

Kévin Martin

Initiateur du mouvement getBrain.fr avec mon ami Loic ! Blogueur de temps en temps, développeur tous les jours, passionné à vie ! Twitteur de bonne humeur, sympathique dans l'ensemble, esprit d'équipe de rigueur ! Voilà ce que je suis :) Que dire de plus ? Je monitore ;)

 Previous Article Windows 10 : Corriger le problème de Window Auto-Tuning
Next Article   Utiliser Let’s Encrypt avec Apache sur Ubuntu

Leave a Reply

Annuler la réponse

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

fb.png twitter.png google.png youtube.png telegram.png rss.png

Articles récents

  • Think Different
    L’astuce de la gestion à 3 doigts sur Mac OS X 23 novembre 2016 Billet, macOS
  • Cluster Galera & HAproxy Frontend 6 octobre 2016 Linux, SysAdmin
  • Installer Laravel sur Cloud9.io 1 octobre 2016 Développement, Laravel
  • ESXi 6.0 HA – vCenter avec KVM et NAS Asustor 28 septembre 2016 SysAdmin

Commentaires récents

  • Loic Dumay dans Installer une SeedBox simplement sur Debian
  • terry dans Installer une SeedBox simplement sur Debian
  • terry puillet dans Installer une SeedBox simplement sur Debian
  • kris1208 dans Ajouter un utilisateur sur sa SeedBox
  • Loic Dumay dans Installer une SeedBox simplement sur Debian
Confidentialité et cookies : ce site utilise des cookies. En continuant à naviguer sur ce site, vous acceptez que nous en utilisions.
Pour en savoir plus, y compris sur la façon de contrôler les cookies, reportez-vous à ce qui suit : Politique relative aux cookies

© Copyright 2016 | getBrain.fr | Politique de confidentialité | Contact

loading Annuler
L'article n'a pas été envoyé - Vérifiez vos adresses e-mail !
La vérification e-mail a échoué, veuillez réessayer
Impossible de partager les articles de votre blog par e-mail.