Raspberry – Certification SSL avec Letsencrypt

Martin Abadie
Martin Abadie
Étudiant en master 2 d'informatique, spécialité AIGLE (Architecture et InGénierie du Logiciel et du wEb), à l'université de Montpellier, je suis passionné par les nouvelles technologies et le Raspberry.

 

 

Certaines applications web peuvent nécessiter une connexion sécurisée de type HTTPS. Pour se faire, vous devez avoir une certification SSL. Cette dernière peut être générée par vos propre soin avec OpenSSL, cependant, les navigateurs bloqueront sûrement l’accès à votre site car vous vous serez auto-certifié, ce qui n’a aucune valeur aux yeux des moteurs de recherche, des navigateurs, etc…

Pour qu’une certification soit acceptée il faut qu’elle soit faite par un tiers. Des entreprises spécialisée vendent des certifications, le problème c’est que ça a un coût, environ 100€/an ?

Heureusement, un projet open source du nom de Letsencrypt permet de certifier son domain et ses sous-domaines gratuitement! ?

Dans ce tutoriel, vous installerez Letsencrypt et créerez votre première certification SSL pour votre site.

 

 

Pré-requis 

  • Raspberry Pi fonctionnel avec Apache (ici et ici)

 

Sommaire :

  1. Téléchargement et installation
  2. Mise en place du premier certificat
  3. Renouvellement du certificat

 

 

         Téléchargement et installation

Vous allez commencer par récupérer le git de Letsencrypt sur GitHub

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

C’est à peu prêt tout pour l’installation, autant dire qu’il n’y a rien à faire ?

Pour mettre Letsencrypt à jour, placez vous dans le dossier /opt/letsencrypt et faites un pull pour récupérer la dernière version des fichiers

cd /opt/letsencrypt

sudo git pull

 

 

         Mise en place du premier certificat

Pour commencer, il faut arrêter le service Apache2

sudo service apache2 stop

Pour mettre en place votre premier certificat, vous devez avoir défini votre site web dans Apache, pour cela, vous allez créer le fichier site.conf

sudo nano /etc/apache2/sites-available/site.conf

Puis collez le contenu suivant en modifiant les lignes ServerAdmin et DocumentRoot comme suit, et ajoutez la ligne ServerName avec votre nom de domaine

<VirtualHost *:80>

        ServerAdmin VOTRE_ADRESSE_MAIL
        ServerName  VOTRE_NOM_DE_DOMAINE
        DocumentRoot /var/www/martin_abadie
        RewriteEngine on
        RewriteCond %{SERVER_NAME} = VOTRE_NOM_DE_DOMAINE
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>

Puis quittez en sauvegardant (ctrl + x puis Y ou O suivant la langue)

Vous allez maintenant relancer Apache2

sudo service apache2 start

Une fois la définition de votre site sur le port 80 (port HTTP) établie, on va mettre en place la certification SSL pour votre nom de domaine

sudo /opt/letsencrypt/letsencrypt-auto -d VOTRE_NOM_DE_DOMAINE

Puis vous aurez le choix entre la méthode Easy qui permet un accès à votre site web en http ainsi qu’en https, ou la méthode Secure qui redirige toutes les demandes d’accès à votre site en https.

Ça y est, votre site est certifié SSL, vous pouvez vérifier en entrant dans votre navigateur https://VOTRE_NOM_DE_DOMAINE

Mais sachez que le certificat SSL généré par Letsencrypt a une durée de vie de 3 mois. Pour chaque nouveau sous-domaine, renouvelez cette étape en créant un fichier de configuration différent.

 

 

         Renouvellement du certificat

Une fois le bail du certificat arrivé à échéance, vous recevrez un mail vous indiquant qu’il faut le renouveler, vous devrez alors exécuter la commande suivante

/opt/letsencrypt/letsencrypt-auto --apache --renew-by-default -d VOTRE_NOM_DE_DOMAINE