33800 Docs

← Retour
#!/bin/bash # =========================================== # Vérifie l'expiration des certificats SSL # Usage: ./check-ssl.sh [domain] # =========================================== set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/../lib/config.sh" source "$SCRIPT_DIR/../lib/colors.sh" DOMAIN="${1:-$DOMAIN_BASE}" print_header "Vérification SSL - $DOMAIN" # Liste des domaines à vérifier DOMAINS_TO_CHECK=( "$DOMAIN_BASE" "hellocar-api-prod.$DOMAIN_BASE" "hellocar-public-prod.$DOMAIN_BASE" "hellocar-admin-prod.$DOMAIN_BASE" ) echo "" printf "%-45s %-15s %-20s\n" "DOMAINE" "JOURS RESTANTS" "EXPIRATION" print_separator for domain in "${DOMAINS_TO_CHECK[@]}"; do # Récupérer la date d'expiration du certificat EXPIRY=$(echo | openssl s_client -servername "$domain" -connect "$domain:443" 2>/dev/null | \ openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2) if [ -n "$EXPIRY" ]; then # Calculer les jours restants EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s 2>/dev/null || date -j -f "%b %d %T %Y %Z" "$EXPIRY" +%s 2>/dev/null) NOW_EPOCH=$(date +%s) DAYS_LEFT=$(( (EXPIRY_EPOCH - NOW_EPOCH) / 86400 )) EXPIRY_DATE=$(date -d "$EXPIRY" '+%Y-%m-%d' 2>/dev/null || echo "$EXPIRY") # Colorer selon les jours restants if [ "$DAYS_LEFT" -lt 7 ]; then COLOR="${RED}" STATUS="⚠️ CRITIQUE" elif [ "$DAYS_LEFT" -lt 30 ]; then COLOR="${YELLOW}" STATUS="⚡ À renouveler" else COLOR="${GREEN}" STATUS="✓" fi printf "%-45s ${COLOR}%-15s${NC} %-20s\n" "$domain" "$DAYS_LEFT jours" "$EXPIRY_DATE" else printf "%-45s ${RED}%-15s${NC} %-20s\n" "$domain" "ERREUR" "Impossible de vérifier" fi done echo "" # Vérifier aussi le certificat sur le serveur Nginx log_info "Vérification du certificat local sur Nginx..." CERT_EXPIRY=$(ssh "$NGINX_USER@$NGINX_HOST" "sudo openssl x509 -enddate -noout -in $SSL_CERT_PATH 2>/dev/null | cut -d= -f2" 2>/dev/null || echo "") if [ -n "$CERT_EXPIRY" ]; then log_info "Certificat local expire le: $CERT_EXPIRY" else log_warn "Impossible de vérifier le certificat local" fi