Gestione Certificati PVE e PBS
Introduzione:
Quando si installano Proxmox VE (PVE) e Proxmox Backup Server (PBS) sul medesimo server fisico condividendo lo stesso dominio pubblico, è prassi comune affidarsi a Let's Encrypt per la gestione dei certificati SSL. Tuttavia, questa architettura "single-host" nasconde un'insidia tecnica legata ai rinnovi automatici.
Poiché i due servizi operano su demoni separati e indipendenti, quando PVE rinnova in automatico il proprio certificato alla scadenza, PBS non ne viene informato e continua ad esporre la vecchia chiave. Questo inevitabile disallineamento provoca la rottura della catena di fiducia (Chain of Trust) tra i due nodi, facendo fallire improvvisamente i job di backup con il blocco 500 fingerprint not verified.
Questa guida illustra la procedura per risolvere il problema alla radice, implementando uno script di sincronizzazione automatica che mantiene costantemente allineati i due servizi, rendendo l'infrastruttura completamente esente da manutenzione manuale (zero-touch).
Passo 1: Creazione dello script di automazione
Creiamo il file eseguibile direttamente nella cartella dei cronjob giornalieri. Usa il tuo editor preferito (es. nano o vim):
PVE_CERT="/etc/pve/local/pveproxy-ssl.pem"
PVE_KEY="/etc/pve/local/pveproxy-ssl.key"
PBS_CERT="/etc/proxmox-backup/proxy.pem"
PBS_KEY="/etc/proxmox-backup/proxy.key"
if [ ! -f "$PVE_CERT" ] || [ ! -f "$PVE_KEY" ]; then
echo "Errore: Certificati Let's Encrypt di PVE non trovati."
exit 1
fi
if [ ! -f "$PBS_CERT" ] || [ "$PVE_CERT" -nt "$PBS_CERT" ]; then
echo "Aggiornamento certificati PBS in corso..."
cp "$PVE_CERT" "$PBS_CERT"
cp "$PVE_KEY" "$PBS_KEY"
chown backup:backup "$PBS_CERT"
chown backup:backup "$PBS_KEY"
chmod 640 "$PBS_CERT" "$PBS_KEY"
systemctl restart proxmox-backup-proxy
echo "Certificati aggiornati e demone riavviato con successo."
else
exit 0
fi
Poi lanciamo
nano /etc/cron.daily/sync-pbs-certs
Incolla all'interno questo codice esatto:
Salva e chiudi il file (CTRL+O, Invio, CTRL+X se usi nano).
Passo 2: Rendere lo script eseguibile
Affinché il sistema possa eseguirlo in automatico, dobbiamo assegnare i permessi di esecuzione:
chmod +x /etc/cron.daily/sync-pbs-certs
Passo 3: Esecuzione manuale (Primo avvio)
Esegui lo script manualmente la prima volta per allineare subito la situazione attuale:
/etc/cron.daily/sync-pbs-certs
Se la copia avviene correttamente, vedrai l'output Aggiornamento certificati PBS in corso... seguito da Certificati aggiornati e demone riavviato con successo.
Passo 4: Verifica finale
-
Verifica lato CLI: Controlla che il demone PBS stia effettivamente leggendo la chain di Let's Encrypt:
proxmox-backup-manager cert info | grep -i issuerDovrebbe restituire un output simile a:
Issuer: C=US, O=Let's Encrypt, CN=R3. -
Verifica lato GUI PVE:
- Vai su Datacenter > Storage e seleziona il tuo storage PBS.
- Clicca su Edit.
- Assicurati che il campo Fingerprint sia completamente vuoto.
- Salva.
A questo punto, lo storage in Proxmox VE si connetterà senza problemi. L'automatismo eseguirà il check ogni notte (all'orario standard dei cron daily di Debian, solitamente intorno alle 06:25 del mattino) e si attiverà solo se Proxmox VE ha effettivamente rinnovato i certificati.