Separazione certificati SSL #23
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: golem/morgan#23
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problema
Oggi è scaduto (l'unico) certificato SSL per tutti i domini, e non ce ne siamo accorti in tempo.
Analisi
Come è potuto accadere?
browser.docker.golem.linux.it
, perchè:Questo ha causato il mancato rinnovo del mega-certificato SSL per tutti i domini
*.golem.linux.it
, perché Let's Encrypt non riusciva più a fare la sua verifica, mancando il dominio dalla zona DNS, ma, allo stesso tempo, non essendo stato informato del cambiamento.Questa serie di cause ha fatto sì che tutti i servizi accessibili tramite il proxy SSL fossero irraggiungibili (eg. mostravano errore di certificato scaduto).
Soluzione (temporanea)
Ho rigenerato manualmente il certificato con certbot, stavolta togliendo il dominio in questione dalla lista.
Soluzione
Onde evitare che si verifichi di nuovo una situazione simile (o almeno, mitigare la sua catastroficità), sarebbe consigliabile generare N diversi certificati, uno per ogni dominio, da utilizzare nel proxy, così che, se anche ci si dovesse accidentalmente dimenticare di rinnovarne uno, non si precluda l'utilizzo di tutti gli altri servizi.
Possiamo farlo insieme in una serata di GOLEM Insiders.
Uptime-Kuma ha l'opzione di monitorare la scadenza dei certificati:
Si potrebbe usare per mandare una notifica via Telegram
Inoltre, c'è un motivo per cui non implementare un renew automatico?
I certificati scadono ogni 3 mesi e si rinnovano già automaticamente.
Let's Encrypt già ci avverte quando stanno per scadere i certificati, solo che le notifiche di un certificato in scadenza per "dimenticanza" sono identiche a quelle di un certificato in scadenza per "scelta deliberata", in quanto non è possibile revocare un certificato rilasciato da Let's Encrypt, ma solo lasciarlo scadere.
Probabilmente non sono stato molto chiaro, ma il problema è stato causato da perdurata negligenza, dovuta però al fatto che il comportamento di Let's Encrypt è simile a quello di Pierino quando grida "al lupo": ogni volta che decido di fare a meno di un certificato, non posso fare altro che lasciarlo scadere, e quindi farmi arrivare N-mila email, che alla fine tendo a ignorare.
Se invece separiamo i certificati, le email sono più chiare (perché si riferiscono solo a un sottodominio, e non a "tutti"), e si riduce il rischio di un errore umano.
Comunque mi piace anche il suggerimento di mettere Update-Kuma ad eseguire questo controllo: magari gli impostiamo un alert misurato in maniera tale che, normalmente, si vedano solo quelli di Let's Encrypt (a 30 giorni dalla scadenza), e solo successivamente inizi a mandare notifiche anche Update-Kuma, in maniera tale che si capisca che la situazione "è seria" e richiede più attenzione.
Programmerei l'attività per un martedì sera in Officina, anche se in questo periodo sono un po' incasinato e non riesco a passare spesso.