42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
#date: 23/04/2025
 | 
						|
#ki: fab
 | 
						|
#koi: supprimer de acme.json les certificats LE devenus inutiles
 | 
						|
 | 
						|
KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
						|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
 | 
						|
setKazVars
 | 
						|
. "${DOCKERS_ENV}"
 | 
						|
 | 
						|
FILE_ACME_ORI="/var/lib/docker/volumes/traefik_letsencrypt/_data/acme.json"
 | 
						|
FILE_ACME="/tmp/acme.json"
 | 
						|
FILE_URL=$(mktemp)
 | 
						|
FILE_ACME_TMP=$(mktemp)
 | 
						|
 | 
						|
#l'ip du serveur:
 | 
						|
#marche po pour les machines hébergée chez T.C... :( on récupère l'IP dans config/dockers.env
 | 
						|
#MAIN_IP=$(curl ifconfig.me)
 | 
						|
 | 
						|
#DANGER: IP depuis config/dockers.env ne fonctionne pas pour les domaines hors *.kaz.bzh (ex:radiokalon.fr)
 | 
						|
 | 
						|
#sauvegarde
 | 
						|
cp $FILE_ACME_ORI $FILE_ACME
 | 
						|
cp $FILE_ACME "$FILE_ACME"_$(date +%Y%m%d_%H%M%S)
 | 
						|
 | 
						|
#je cherche toutes les url
 | 
						|
jq -r '.letsencrypt.Certificates[].domain.main' $FILE_ACME > $FILE_URL
 | 
						|
 | 
						|
while read -r url; do
 | 
						|
  #echo "Traitement de : $url"
 | 
						|
  nb=$(dig $url | grep $MAIN_IP | wc -l)
 | 
						|
  if [ "$nb" -eq 0 ]; then 
 | 
						|
    #absent, on vire de acme.json
 | 
						|
    echo "on supprime "$url
 | 
						|
    jq --arg url "$url" 'del(.letsencrypt.Certificates[] | select(.domain.main == $url))' $FILE_ACME > $FILE_ACME_TMP
 | 
						|
    mv -f $FILE_ACME_TMP $FILE_ACME
 | 
						|
  fi
 | 
						|
done < "$FILE_URL"
 | 
						|
 | 
						|
echo "si satisfait, remettre "$FILE_ACME" dans "$FILE_ACME_ORI
 |