Comment configurer SSL sur votre site rapidement et gratuitement avec Let’s Encrypt

Avoir un site Web prêt pour SSL est de plus en plus important. Google classe une adresse HTTPS plus haut qu'une adresse HTTP, et cela est configuré pour continuer jusqu'à ce que HTTP soit consigné dans l'historique.

Voici comment générer rapidement des certificats SSL et les implémenter sur votre site Web en quelques minutes et gratuitement.

SSL gratuit et facile avec Let's Encrypt

Configurer SSL sur votre site Web n'a jamais été aussi simple grâce à Let's Encrypt, une autorité de certification SSL populaire et gratuite.

Fondé en avril 2016, leur script certbot et le fait qu'il s'agisse d'un service gratuit ont fait de Let's Encrypt un nom populaire dans le monde du développement en ligne.

Installez certbot

Cet article suppose que vous disposez déjà d'un serveur Web Linux et d'un nom de domaine auquel vous souhaitez ajouter SSL. Connectez-vous à votre serveur via SSH et vérifiez si certbot est déjà installé avec la commande:

 sudo certbot --version

Si le numéro de version est affiché, certbot est déjà installé et vous pouvez passer à la section suivante. Sinon, vous pouvez installer certbot avec la commande suivante:

 sudo apt-get -y install certbot

Générer un certificat SSL

Pour vous assurer que cet article fonctionne pour tous les serveurs, arrêtez d'abord temporairement votre serveur HTTP existant avec la commande appropriée:

 sudo service nginx stop
 sudo service apache2 stop

Veuillez noter que le nom de domaine pour lequel vous souhaitez générer un certificat SSL doit déjà pointer vers l'adresse IP de votre serveur Web. Dans ce cas, générez un nouveau certificat SSL avec la commande:

 certbot certonly

Vous serez invité à choisir une méthode pour vérifier votre nom de domaine. Appuyez sur 1 pour lancer une instance de serveur temporaire, et l'invite suivante vous demandera votre nom de domaine. En entrant dans votre domaine, certbot vérifiera et s'assurera que le nom de domaine est résolu sur votre serveur, ce qui signifie que vous contrôlez le domaine, puis générera votre nouveau certificat SSL.

Configurer Nginx

Si vous utilisez Nginx comme serveur HTTP, commencez par déterminer où se trouve le fichier de configuration de votre site Web. Ce sera essentiellement toujours dans l'un des répertoires suivants:

  • / etc / nginx / sites-enabled
  • /etc/nginx/conf.d

Une fois que vous connaissez l'emplacement du fichier de configuration de votre site, ouvrez-le dans un éditeur de texte tel que nano avec la commande:

 sudo nano /etc/nginx/sites-enabled/default.conf

Tout en haut du fichier, ajoutez les lignes suivantes:

 server {
listen 80;
rewrite ^ https://$server_name$request_uri? permanent;
}

Cela redirigera automatiquement toutes les demandes non SSL vers votre site vers leur homologue SSL. Dans le haut du fichier, vous verrez le début de la configuration de votre site:

 server {
listen 80;
server_name domain.com www.domain.com;

Modifiez ceci et changez Listen 80; pour écouter 443 ssl; Ajoutez ensuite les lignes suivantes en dessous:

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

Assurez-vous de remplacer domain.com dans les lignes ci-dessus par votre nom de domaine. Enregistrez et fermez le fichier en appuyant sur Ctrl + W suivi de l'invite, et redémarrez Nginx avec la commande:

 sudo service nginx start

Visitez votre site Web, et il devrait maintenant être en SSL sans aucun avertissement du navigateur concernant un site non sécurisé.

Configurer Apache

Si vous utilisez Apache comme serveur HTTP, recherchez d'abord le fichier de configuration de votre site Web qui se trouvera probablement dans le répertoire / etc / apache2 / sites-enabled . Si vous n'êtes pas sûr de l'emplacement, exécutez la commande:

 apachectl -S

Cela affichera tous les hôtes virtuels configurés sur Apache avec leurs emplacements respectifs. Une fois que vous avez localisé le fichier de configuration, ouvrez-le dans un éditeur de texte avec la commande:

 sudo nano /etc/apache2/sites-enabled/default.conf

En haut de ce fichier, entrez les lignes:

 <VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>

Dans la directive <VirtualHost *: 80> existante, changez le port de 80 à 443. Dans cette directive, ajoutez les lignes:

 SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

Assurez-vous de changer domain.com dans les lignes ci-dessus avec votre domaine réel. Enregistrez et fermez le fichier en appuyant sur Ctrl + X suivi de l'invite, puis redémarrez Apache avec la commande:

 sudo service apache2 start

Visitez votre site Web, et il devrait maintenant être en SSL sans aucun avertissement du navigateur concernant un site non sécurisé.

Renouveler les certificats SSL

Le cas échéant, lorsque vous avez besoin de renouveler les certificats SSL pour votre site Web, cela peut facilement être fait avec la commande suivante:

 certbot renew

Site sécurisé!

Félicitations, maintenant chaque visiteur de votre site Web sera forcé à sa version SSL, qui est maintenant protégée contre un certificat SSL nouvellement généré qui est signé par une autorité de confiance, ce qui signifie que vos visiteurs ne recevront aucun avertissement de sécurité.

Dans cet article, vous avez appris ce qu'est certbot , comment générer de nouveaux certificats SSL, comment configurer Nginx ou Apache avec SSL et comment renouveler vos certificats à une date ultérieure.

Crédit d'image: Robert Avgustin / Shutterstock