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 apache2Une 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>&1Explication 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 Vous avez maintenant un système autonome qui se sécurise tout seul chaque année.