Sécuriser gratuitement son site en HTTPS

Sécuriser son site en HTTPS

Let ‘s Encrypt & Cerbot

Let’s Encrypt est l’autorité de certification SSL tandis que Cerbot est un outil qui permet d’obtenir en une ligne de commande son certificat et de configurer son serveur web.

Sécuriser gratuitement son site en HTTPS avec Let’s Encrypt on ubuntu 18.04

Dans ce tuto, nous allons installer et utiliser Certbot pour obtenir un certificat SSL gratuit pour Nginx sur Ubuntu 18.04 et configurer votre certificat pour qu’il se renouvelle automatiquement.

Vous n’utilisez pas Ubuntu 18.04 ? Choisissez une version différente et suivez la procédure indiqué sur la page officielle du site : https://certbot.eff.org

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

1 _ Un serveur Ubuntu 18.04

2 _ Un utilisateur root  du serveur et un pare-feu

3 _ S’ assurer que le FIREWALL au niveau du serveur web (amazon par exemple) est DÉSACTIVÉ

Si votre serveur est déjà configuré, passez directement à l’ installation de Certbot sinon Configurer votre serveur ubuntu en suivant ce tutoriel : http://www.e-real.fr/tuto-developpement/mettre-en-place-un-serveur-web/

Installation de Certbot

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx 

Confirmation de la configuration de Nginx

Certbot doit pouvoir trouver le serverbloc correct dans votre configuration Nginx pour pouvoir configurer automatiquement SSL.

sudo nano /etc/nginx/sites-available/example.com

/etc/nginx/sites-available/votre_site.com

... 
server {
    server_name votre_site.com www.votre_site.com; 
...

Enregistrez ensuite le fichier, quittez votre éditeur et vérifiez la syntaxe de vos modifications de configuration:

sudo nginx -t

si vous n’avez pas d’erreur, reloader Nginx

sudo systemctl reload nginx

Certbot peut désormais trouver le bon serverbloc et le mettre à jour.

Autoriser HTTPS avec le pare-feu

Commencez par réactiver le parefeu avec la commande ci-dessous :

sudo ufw enable

Une fois le parefeu activé,  vous devrez ajuster les paramètres pour autoriser le trafic HTTPS.

sudo ufw status

Cela devrait ressembler à ceci :

Output
        Status: active
        
        To                         Action      From
        --                         ------      ----
        OpenSSH                    ALLOW       Anywhere                  
        Nginx HTTP                 ALLOW       Anywhere                  
        OpenSSH (v6)               ALLOW       Anywhere (v6)             
        Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Pour ajouter du trafic HTTPS, autorisez le profil Nginx Full et supprimez la tolérance de profil HTTP Nginx redondant:

sudo ufw allow 'Nginx Full'
        sudo ufw delete allow 'Nginx HTTP'

Obtention d’un certificat SSL

Avant de poursuivre, vérifier chez votre fournisseur les redirections DNS et adresser bien l’ adresse IP pour mon site.com et www.monsite.com.

sudo certbot --nginx -d mon_site.com -d www.mon_site.com

Une fenêtre comme ci-dessous s’ouvre et certbot vous demande comment vous souhaitez configurer vos paramètres HTTPS.

Note : Vous pouvez subir des délais du au déploiement DNS. Soyez patient 🙂 (environ 15 minutes..) .Vous pouvez suivre l’avancé avec la commande : nslookup monsite.com
Output
                Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
                -------------------------------------------------------------------------------
                1: No redirect - Make no further changes to the webserver configuration.
                2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
                new sites, or if you're confident your site works on HTTPS. You can undo this
                change by editing your web server's configuration.
                -------------------------------------------------------------------------------
                Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Après validation avec la touche Entrée, une fenetre vous confirme la validation du certificat

Output
                        IMPORTANT NOTES:
                         - Congratulations! Your certificate and chain have been saved at:
                           /etc/letsencrypt/live/example.com/fullchain.pem
                           Your key file has been saved at:
                           /etc/letsencrypt/live/example.com/privkey.pem
                           Your cert will expire on 2018-07-23. To obtain a new or tweaked
                           version of this certificate in the future, simply run certbot again
                           with the "certonly" option. To non-interactively renew *all* of
                           your certificates, run "certbot renew"
                         - Your account credentials have been saved in your Certbot
                           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 Certbot so
                           making regular backups of this folder is ideal.
                         - If you like Certbot, please consider supporting our work by:
                        
                           Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
                           Donating to EFF:                    https://eff.org/donate-le
                        

renouvellement automatique de Certbot

Pour tester le processus de renouvellement, le mieux est de tester d’abord :

sudo certbot renew --dry-run

Certbot renouvellera vos certificats et reloadera Nginx pour prendre en compte les modifications.

Note : si toutefois le processus de renouvellement échoue, alors Let’s Encrypt vous enverra un message avec l’email que vous avez spécifié, vous avertissant de l’expiration de votre certificat.

Vous êtes arrivé au bout de cet article, j’en conclus qu’il vous a plu, alors envoyez moi un max d’étoiles ⭐⭐⭐⭐⭐,  et partagez le avec vos amis et vos connaissances sur les réseaux sociaux, avec les boutons ci-dessous :

Rate this post

Partager cet article sur les réseaux sociaux :

Articles similaires

Docker, le soft à connaître
Déployer Laravel, Nginx & MySQL avec Docker
Mettre en place un serveur Web