Renouveler les certificats

Automatisation du renouvellement

 

Pourquoi un script automatique ?

Vos certificats auto-signés sont valables 1 an. Passé ce délai, votre navigateur bloquera l'accès. Comme nous ne voulons pas refaire toutes les commandes manuellement chaque année, nous allons créer un script (une liste de commandes) que le système exécutera tout seul.

 

1. Création du fichier de script

Nous allons créer un fichier nommé renew.sh dans un dossier sécurisé (celui de l'administrateur root).

Étape A : Ouvrir l'éditeur

 
sudo nano /root/renew.sh

Cette commande ouvre l'éditeur de texte "Nano" pour créer un fichier vide.

 

Étape B : Remplir le script

Copiez et collez le bloc ci-dessous à l'intérieur de Nano :

 
#!/bin/bash
# Indique au système que c'est un script Bash

# Mettre votre IP ici :
HOST_NAME="192.168.1.xxx"

# Commande pour renouveler le certificat FTP
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/certs/vsftpd.pem \
-out /etc/ssl/certs/vsftpd.pem \
-subj "/C=FR/ST=Local/L=Pi/O=Home/CN=${HOST_NAME}"

# Relancer le FTP pour qu'il voit le nouveau certificat
systemctl restart vsftpd

# Commande pour renouveler le certificat Web (Apache)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crt \
-subj "/C=FR/ST=Local/L=Pi/O=Home/CN=${HOST_NAME}"

# Relancer Apache pour qu'il voit le nouveau certificat
systemctl restart apache2

Une fois collé, faites Ctrl+O (Enregistrer) puis Entrée, et enfin Ctrl+X (Quitter).

 

2. Donner les droits d'exécution

Par défaut, un fichier texte ne peut pas être "lancé" comme un programme. Il faut lui en donner l'autorisation.

 
sudo chmod +x /root/renew.sh

Le "x" de "chmod +x" signifie "eXecutable". Sans cela, le système refusera de lancer le script.

 

3. Planifier la tâche avec CRON

Cron est le "réveil-matin" de Linux. Il permet de dire : "À telle heure, lance ce script".

Ouvrir le programmateur :

 
sudo crontab -e

Allez tout en bas du fichier et ajoutez cette ligne :

 
0 3 1 1 * /root/renew.sh >/dev/null 2>&1

Explication de la programmation :

  • 0 3 : signifie à 03h00 du matin.
  • 1 1 : signifie le 1er jour du 1er mois (janvier).
  • * : signifie n'importe quel jour de la semaine.
  • >/dev/null 2>&1 : demande au système de travailler en silence sans envoyer d'e-mails de rapport.
 

4. Tester le bon fonctionnement

N'attendez pas un an pour savoir si cela marche ! Lancez le script manuellement maintenant :

 
sudo /root/renew.sh

Si aucun message d'erreur n'apparaît, c'est gagné. Vous pouvez vérifier la date de fin de votre certificat avec cette commande :

 
sudo openssl x509 -in /etc/ssl/certs/apache-selfsigned.crt -noout -dates
 
Bravo !

Vous avez maintenant un système autonome qui se sécurise tout seul chaque année.

 
⬅️ Retour à la page précédente