Da qualche giorno a questa parte, i server web con Ubuntu e Nginx sui quali lavoro hanno iniziato a mostrare un fastidioso avviso. In risposta al comando di ricerca aggiornamenti (apt update
), viene infatti visualizzato il messaggio The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key
. Il problema è causato dalla scadenza della firma digitale utilizzata per autenticare il pacchetto nginx, che deve dunque essere sostituita.In questa rapida guida vedremo come risolvere il problema.
La presente guida è stata testata sul server di TurboLab.it con Nginx 1.27.0 su Ubuntu 22.04. La procedura è comunque analoga per qualsiasi altra distribuzione che usi apt come gestore dei pacchetti
Preciso inoltre che la versione di nginx scaricabile dai repository di Ubuntu non è interessata dal problema, ma solo le installazioni di Nginx svolte tramite il repository nginx.org/packages/ubuntu
, così come consigliato nella nostra guida:
» Leggi: Come installare NGINX su Ubuntu - La Guida Definitiva per configurare un Server Web con Linux
Il messaggio di errore completo è simile al seguente:
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://nginx.org/packages/mainline/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>W: Failed to fetch http://nginx.org/packages/mainline/ubuntu/dists/jammy/InRelease The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>W: Some index files failed to download. They have been ignored, or old ones used instead.
Oltre al fastidio di visualizzare questo avviso, la situazione dovrebbe essere corretta al più presto perché la copia installata di Nginx non viene aggiornata e rimane ferma ad una versione potenzialmente obsoleta.
EXPKEYSIG ABF5BD827BD9BF62 nginx signing key: Visualizzare la firma scaduta
Per procedere alla sostituzione della chiave scaduta di Nginx è sufficiente scaricare il nuovo file e sovrascrivere la vecchia firma digitale.
Per prima cosa, accertiamoci che il file che contiene la firma attuale sia nel percorso atteso impartendo:
sudo ls -la /usr/share/keyrings/nginx-archive-keyring.gpg
In caso vada tutto bene, il comando dovrebbe mostrare solamente le informazioni relative al file
Se invece ricevi un errore, probabilmente avevi scaricato la firma digitale in un percorso differente. Prova a elencare il contenuto della cartella in questione per vedere se, magari, hai semplicemente usato un nome diverso da nginx-archive-keyring.gpg
. Il comando è:
sudo ls -la /usr/share/keyrings/
EXPKEYSIG ABF5BD827BD9BF62 nginx signing key: Sostituire la firma digitale del pacchetto
A questo punto, puoi semplicemente sovrascrivere il file in questione con la nuova firma impartendo:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Problema risolto
Il problema è così risolto. Puoi ora aggiornare la lista dei pacchetti con sudo apt update
e aggiornare il pacchetto nginx tramite il consueto sudo apt install nginx -y
Personalmente, però, preferisco cogliere l'occasione e aggiornare tutto il sistema, invece dei singoli pacchetti. Ho mostrato come farlo qui: