Certificat SSL Let’s Encrypt pour Apache Sous Debian 9

Certificat SSL Let’s Encrypt pour Apache Sous Debian 9

Dans cet article nous allons voir comment créer, installer et gérer un certificat SSL Let’s Encrypt sous debian 9, afin de proposer un site web sécurisé par https aux internautes.

Il faut au préalable installer apache avec apt-get install apache2 ou sinon installer un serveur LAMP en suivant cet article (Installation d’un serveur LAMP sous Debian 9) si par la suite vous mettez en place WordPress.

Enregistrement DNS

Ne pas oublier d’ajouter les enregistrements DNS de domain.tld et www.domain.tld qui pointe vers la même adresse IP. Le but est que le site soit accessible à la fois depuis domain.tld et www.domain.tld

Préparation de vhost

Nous allons créer le fichier de configuration (remplacer domain.conf par votre nom de domaine.conf)

# nano /etc/apache2/sites-available/domain.conf

Copier/coller le texte ci-dessous sans oublier de remplacer domain par votre nom de domaine

<VirtualHost *:80>

ServerName domain.tld
ServerAlias www.domain.tld

DocumentRoot /var/www/domain
ErrorLog /var/www/domain/error.log
CustomLog /var/www/domain/access.log combined

<Directory /var/www/domain/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Redirection vers www avec .htaccess

Nous allons maintenant créer le fichier .htaccess pour rediriger domain.tld vers www.domain.tld et cela pour éviter duplicate content qui nuit au bon positionnement d’un site.

Commençons par créer le dossier qui contiendra votre site dans www (Ne pas oublier de donner le même nom que dans le fichier de configuration précédent).

# mkdir /var/www/domain
# cd /var/www/domain

Nous allons maintenant créer le fichier .htaccess

# nano .htaccess

Copier/coller le texte ci-dessous.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.[^.]+\.[^.]+$
RewriteRule ^(.*) https://www\.%{HTTP_HOST}/$1 [QSA,L,R=301]
</IfModule>

Ensuite, on désactive le fichier de configuration par défaut

# cd /etc/apache2/sites-available
# a2dissite 000-default.conf

Et on active le fichier de configuration domain.com

# a2ensite domain.conf
# systemctl reload apache2

Installation de Certbot

Pour commencer, on télécharge Certbot et on le rend exécutable :

# cd /opt
# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto

Création du certificat Let’s Encrypt

Lancez la commande suivante pour installer dépendances et demander la création du certificat :

# cd /opt
# ./certbot-auto

Les étapes de création sont les suivante :

  1. Entrez votre adresse mail ensuite entrer
  2. Entrez A et entrer pour accepter le contrat
  3. Ensuite N pour ne pas partager votre mail
  4. Étape très importante : il va chercher dans notre configuration de VHOST le nom de domaine : domain.tld et www.domain.tld. Entrez 1 2 (espace entre le 1 et 2) ensuite entrer.

5. Choisir 2 pour rediriger toute les requêtes http vers https

Rediriger l'adresse IP de votre serveur vers votre nom de domaine

Nous allons modifier le fichier de configuration de vhost pour rediriger votre ip vers le nom de domaine (remplacer domain.conf par votre nom de domaine.conf)

# nano /etc/apache2/sites-available/domain.conf

Ajouter cette ligne dans votre fichier Redirect permanent / https://www.domain.tld (Ne pas oublier de remplacer domain par votre nom de domaine)

<VirtualHost *:80>

ServerName domain.tld
ServerAlias www.domain.tld

Redirect permanent / https://www.domain.tld

DocumentRoot /var/www/domain
ErrorLog /var/www/domain/error.log
CustomLog /var/www/domain/access.log combined

<Directory /var/www/domain/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>

 

Ensuite il faut redémarrer apache

# systemctl reload apache2

Le renouvellement

Les certificats proposés par Let’s Encrypt sont valables pour une durée de 90 jours. Il faudra donc penser à les renouveler avant la fin de cette période. Pour cela on peut exécuter une commande tous les deux mois dans crontab :

# crontab -e

Copier/coller le texte suivant à la fin :

0 0 * */2 * /opt/certbot-auto renew --force-renewal

Un super site pour vérifier votre planification sur crontab : https://crontab.guru/

Laisser un commentaire

Fermer le menu