[Risolto] Verifica certificato fallita - certificato non attendibile

Sezione dedicata alle problematiche sull'uso dei tool di installazione e gestione di pacchetti, in una distribuzione Debian-based.
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

[Risolto] Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Ciao,

nel preparare un'altra macchina, mi sono imbattuto in un errore sul mio attuale server.
L'errore si presenta come se non avessi installato o aggiornato ca-certificates, me ne sono appunto accorto perchè la versione che stavo utilizzando era più vecchia di quella installata sul nuovo server.
Per installare docker ho seguito queste istruzioni
https://docs.docker.com/engine/install/ ... ker-engine
ma come si può notare dal log qui sotto, non appena lancio l'update, salta fuori l'errore

Codice: Seleziona tutto

apt update
Err:1 https://download.docker.com/linux/debian bullseye InRelease
  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 13.226.175.123 443]
Hit:2 http://security.debian.org/debian-security bullseye-security InRelease
Hit:3 http://deb.debian.org/debian bullseye InRelease
Hit:4 http://deb.debian.org/debian bullseye-updates InRelease
Hit:5 http://deb.debian.org/debian bullseye-backports InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: https://download.docker.com/linux/debian/dists/bullseye/InRelease: No system certificates available. Try installing ca-certificates.
W: Failed to fetch https://download.docker.com/linux/debian/dists/bullseye/InRelease  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 13.226.175.123 443]
W: Some index files failed to download. They have been ignored, or old ones used instead.
Ho provato a reinstallare il pacchetto, con tanto ti purge e riavvio ma nulla da fare.
L'unica cosa che attualmente so è che sul nuovo server non ci sono tutti i programmi che ci sono su questo, come per esempio etckeeper, ecc.
Non vorrei che qualche pacchetto creasse questa "interferenza", ma non mi spiego come mai solo su questo repository e non su altri.

Non sono esperto in materia, ma c'è la possibilità che la "chiave" sia stata salvata in qualche altra posizione e durante l'aggiornamento dei repository non venga considerata la chiave giusta?

Qualcuno ha qualche idea o sa dove si può iniziare a cercare l'errore?

J
Ultima modifica di Chryses il 13/12/2022, 22:05, modificato 1 volta in totale.
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

Ho fatto una prova seguendo le istruzioni nel link e mi sembra che tutto funzioni:

Codice: Seleziona tutto

root@debian11:~# mkdir -p /etc/apt/keyrings

root@debian11:~# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

root@debian11:/etc/apt/keyrings# echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

root@debian11:/etc/apt/keyrings# apt-get update
Scaricamento di:1 http://security.debian.org/debian-security bullseye-security InRelease [48,4 kB]
Trovato:2 http://deb.debian.org/debian bullseye InRelease                                                    
Scaricamento di:3 http://deb.debian.org/debian bullseye-updates InRelease [44,1 kB]
Scaricamento di:4 https://download.docker.com/linux/debian bullseye InRelease [43,3 kB]
Scaricamento di:5 http://security.debian.org/debian-security bullseye-security/main Sources [172 kB]
Scaricamento di:6 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [208 kB]
Scaricamento di:7 http://security.debian.org/debian-security bullseye-security/main Translation-en [135 kB]
Scaricamento di:8 http://deb.debian.org/debian bullseye-updates/main Sources.diff/Index [15,1 kB]
Scaricamento di:9 http://deb.debian.org/debian bullseye-updates/main amd64 Packages.diff/Index [15,1 kB]
Scaricamento di:10 https://download.docker.com/linux/debian bullseye/stable amd64 Packages [14,9 kB]
Scaricamento di:11 http://deb.debian.org/debian bullseye-updates/main Sources T-2022-10-31-2015.41-F-2022-10-31-2015.41.pdiff [391 B]
Scaricamento di:11 http://deb.debian.org/debian bullseye-updates/main Sources T-2022-10-31-2015.41-F-2022-10-31-2015.41.pdiff [391 B]
Scaricamento di:12 http://deb.debian.org/debian bullseye-updates/main amd64 Packages T-2022-10-31-2015.41-F-2022-10-31-2015.41.pdiff [288 B]
Scaricamento di:12 http://deb.debian.org/debian bullseye-updates/main amd64 Packages T-2022-10-31-2015.41-F-2022-10-31-2015.41.pdiff [288 B]
Recuperati 696 kB in 1s (1.207 kB/s)
Hai verificato i permessi di lettura di /etc/apt/keyrings/docker.gpg ?
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Ciao,

si appunto è questo che non capisco, sulla macchina "nuova" funziona e sulla "vecchia" no, mi restituisce errore e non capisco come risolvere, sinceramente non mi va di reinstallare tutto per una stupidata, almeno spero, subito ho pensato potesse bastare rimuovere docker ma pensandoci bene non credo sia docker il problema, ma apt e i certificati, almeno è quello che mi sembra.

I permessi sono ok direi

Codice: Seleziona tutto

# root @ debian in /etc/apt/keyrings on git:master o [18:46:04]
$ ll
total 4
-rw-r--r-- 1 root root 2760 Nov 27 19:47 docker.gpg
Non sono così esperto da sapere se i certificati vengono anche salvati e/o gestiti in altra maniera, come per i PPA per esempio, in questo mi viene da pensare che ci sia un vecchio certificato, mai aggiornato che sta creando problemi
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

Chryses ha scritto: 29/11/2022, 18:57
I permessi sono ok direi

Codice: Seleziona tutto

# root @ debian in /etc/apt/keyrings on git:master o [18:46:04]
$ ll
total 4
-rw-r--r-- 1 root root 2760 Nov 27 19:47 docker.gpg
anche la cartella?
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

qui sembrano avere il tuo problema:
https://forums.docker.com/t/apt-get-upd ... ted/131588
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Cartella:

Codice: Seleziona tutto

drwxr-xr-x 2 root root 4096 Nov 27 19:47 keyrings
Non avevo trovato questo post, grazie, ho già provato a riavviare più volte ma non ha mai funzionato.

Magari mi accodo al posto anche di la, non si sa mai, ma non è un "loro" problema, perchè da te e sul nuovo sistema funziona, è un problema qui sul mio server
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

ti posto il mio /etc/apt/sources.list.d/docker.list

Codice: Seleziona tutto

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian   bullseye stable
Se sei pratico di debug puoi provare con strace (io per rendere l'output meno verboso ho commentato le altre voci nel sources.list):

Codice: Seleziona tutto

# strace -f -v apt-get update 2>&1 | grep -i gpgv
[pid  3824] stat("/usr/lib/apt/methods/gpgv", {st_dev=makedev(0x8, 0x1), st_ino=392862, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=216, st_size=108856, st_atime=1669733107 /* 2022-11-29T15:45:07.780001021+0100 */, st_atime_nsec=780001021, st_mtime=1623315214 /* 2021-06-10T10:53:34+0200 */, st_mtime_nsec=0, st_ctime=1629116338 /* 2021-08-16T14:18:58.640591271+0200 */, st_ctime_nsec=640591271}) = 0
[pid  3828] execve("/usr/lib/apt/methods/gpgv", ["/usr/lib/apt/methods/gpgv"], ["SHELL=/bin/bash", "PWD=/root", "LOGNAME=root", "HOME=/root", "LANG=it_IT.UTF-8", "TERM=xterm-256color", "USER=root", "SHLVL=0", "XDG_DATA_DIRS=/root/.local/share"..., "PATH=/usr/local/sbin:/usr/local/"..., "MAIL=/var/mail/root", "_=/usr/bin/strace"]) = 0
[pid  3824] stat("/usr/lib/apt/methods/gpgv", {st_dev=makedev(0x8, 0x1), st_ino=392862, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=216, st_size=108856, st_atime=1669733107 /* 2022-11-29T15:45:07.780001021+0100 */, st_atime_nsec=780001021, st_mtime=1623315214 /* 2021-06-10T10:53:34+0200 */, st_mtime_nsec=0, st_ctime=1629116338 /* 2021-08-16T14:18:58.640591271+0200 */, st_ctime_nsec=640591271}) = 0
[pid  3829] execve("/usr/lib/apt/methods/gpgv", ["/usr/lib/apt/methods/gpgv"], ["SHELL=/bin/bash", "PWD=/root", "LOGNAME=root", "HOME=/root", "LANG=it_IT.UTF-8", "TERM=xterm-256color", "USER=root", "SHLVL=0", "XDG_DATA_DIRS=/root/.local/share"..., "PATH=/usr/local/sbin:/usr/local/"..., "MAIL=/var/mail/root", "_=/usr/bin/strace"]) = 0
[pid  3842] execve("/usr/bin/apt-config", ["apt-config", "shell", "GPGV", "Apt::Key::gpgvcommand"], ["MAIL=/var/mail/root", "USER=_apt", "APT_KEY_DONT_WARN_ON_DANGEROUS_U"..., "SHLVL=0", "HOME=/nonexistent", "APT_CONFIG=/tmp/apt.conf.vSoUIO", "LOGNAME=_apt", "_=/usr/bin/strace", "TERM=xterm-256color", "USERNAME=_apt", "PATH=/usr/local/sbin:/usr/local/"..., "LANG=", "LC_MESSAGES=", "SHELL=/bin/sh", "IFS=\n\10", "PWD=/root", "LC_ALL=", "XDG_DATA_DIRS=/root/.local/share"...]) = 0
[pid  3831] faccessat(AT_FDCWD, "gpgv", X_OK) = -1 EACCES (Permesso negato)
[pid  3831] faccessat(AT_FDCWD, "/usr/local/sbin/gpgv", X_OK) = -1 ENOENT (File o directory non esistente)
[pid  3831] faccessat(AT_FDCWD, "/usr/local/bin/gpgv", X_OK) = -1 ENOENT (File o directory non esistente)
[pid  3831] faccessat(AT_FDCWD, "/usr/sbin/gpgv", X_OK) = -1 ENOENT (File o directory non esistente)
[pid  3831] faccessat(AT_FDCWD, "/usr/bin/gpgv", X_OK) = 0
[pid  3831] stat("/usr/local/sbin/gpgv", 0x7fff1444be20) = -1 ENOENT (File o directory non esistente)
[pid  3831] stat("/usr/local/bin/gpgv", 0x7fff1444be20) = -1 ENOENT (File o directory non esistente)
[pid  3831] stat("/usr/sbin/gpgv", 0x7fff1444be20) = -1 ENOENT (File o directory non esistente)
[pid  3831] stat("/usr/bin/gpgv", {st_dev=makedev(0x8, 0x1), st_ino=397979, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=880, st_size=449400, st_atime=1669733107 /* 2022-11-29T15:45:07.872001021+0100 */, st_atime_nsec=872001021, st_mtime=1656659026 /* 2022-07-01T09:03:46+0200 */, st_mtime_nsec=0, st_ctime=1662908615 /* 2022-09-11T17:03:35.251998833+0200 */, st_ctime_nsec=251998833}) = 0
[pid  3854] execve("/usr/bin/gpgv", ["gpgv", "--homedir", "/tmp/apt-key-gpghome.yEf9yj4hR9", "--keyring", "/etc/apt/keyrings/docker.gpg", "--ignore-time-conflict", "--status-fd", "3", "/tmp/apt.sig.iqpwnO", "/tmp/apt.data.pe06lQ"], ["MAIL=/var/mail/root", "USER=_apt", "APT_KEY_DONT_WARN_ON_DANGEROUS_U"..., "SHLVL=0", "HOME=/nonexistent", "APT_CONFIG=/tmp/apt.conf.vSoUIO", "LOGNAME=_apt", "_=/usr/bin/strace", "TERM=xterm-256color", "USERNAME=_apt", "PATH=/usr/local/sbin:/usr/local/"..., "LANG=", "LC_MESSAGES=", "SHELL=/bin/sh", "IFS=\n\10", "PWD=/root", "LC_ALL=", "XDG_DATA_DIRS=/root/.local/share"...] <unfinished ...>
[pid  3854] write(2, "gpgv: Signature made Wed Nov 23 "..., 49) = 49
[pid  3854] write(2, "gpgv:                using RSA k"..., 51) = 51
[pid  3854] write(2, "gpgv: Good signature from \"Docke"..., 71) = 71
[pid  3829] write(1, "201 URI Done\nGPGVOutput: GOODSIG"..., 320 <unfinished ...>
[pid  3824] <... read resumed>"201 URI Done\nGPGVOutput: GOODSIG"..., 64000) = 320
oppure un apt in debugMode

Codice: Seleziona tutto

# apt -oDebug::pkgAcquire::Worker=1 update
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

Ti posto anche la mia versione dei pacchetti richiesti:

Codice: Seleziona tutto

ii  ca-certificates                               20210119                         all          Common CA certificates
ii  curl                                          7.74.0-1.3+deb11u3               amd64        command line tool for transferring data with URL syntax
ii  gnupg                                         2.2.27-2+deb11u2                 all          GNU privacy guard - a free PGP replacement
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Ciao, scusa il ritardo.
Essendo passato qualche giorno ho provato a rimuovere e reinstallare seguendo sempre le solite istruzioni ma nulla è cambiato.

Confermo gli stessi pacchetti installati:

Codice: Seleziona tutto

$ apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20210119).
curl is already the newest version (7.74.0-1.3+deb11u3).
gnupg is already the newest version (2.2.27-2+deb11u2).
lsb-release is already the newest version (11.1.0).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Non sono pratico di strace, ti ho però preparato questo, togliendo tutti gli altri source e lasciando solo quello di docker
https://controlc.com/f0c65cce

Non so dove "cercare" l'errore, non ho però provato a disinstallare e reinstallare docker, non penso sia qui il problema.
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

Mi dispiace, ma la vm che avevo messo in piedi l'ho rimossa da un pezzo :(
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Nessun problema
Non c'è un posto dove vengono salvati i certificati legati ai source?
Tipo come quando si lavora con i PPA.
Senza esserne sicuro, ho quasi la sensazione che cerchi di verificare il tutto con un "vecchio" certificato o una vecchia chiave, ma non trovo info

Consigli? Magari reinstallare gnupg? Faccio danni con le connessioni ssh se lo tolgo e lo rimetto?
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

- anche sulla macchina funzionante usi zsh?
- hai verificato che /etc/apt/sources.list.d/docker.list(è qui che gli dici dove cercare la chiave) sia scritto correttamente)?
- hai verificato con gpg /etc/apt/keyrings/docker.gpg?

Altri consigli non ne ho ;)
Sentiamo se altri hanno idee in merito.
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

azioga ha scritto: 12/12/2022, 9:42 - anche sulla macchina funzionante usi zsh?
Si
azioga ha scritto: 12/12/2022, 9:42 - hai verificato che /etc/apt/sources.list.d/docker.list(è qui che gli dici dove cercare la chiave) sia scritto correttamente)?
Credo sia corretto, passando dal programma che lo "converte" non so se esiste un modo per verificare che sia ok, effettivamente potrei provare a copiare il file dal pc funzionante, se dovesse funzionare significa che gpg non funziona a dovere?
azioga ha scritto: 12/12/2022, 9:42 - hai verificato con gpg /etc/apt/keyrings/docker.gpg?
[...]
Effettivamente no, cosa potrei verificare? Qualcosa tipo quello che è esposto qui?
https://www.linuxbabe.com/security/veri ... oads-linux
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da azioga »

per verificare la chiave del repo dovrebbe essere una cosa così:

Codice: Seleziona tutto

$ gpgv --keyring /etc/apt/keyrings/docker.gpg /var/lib/apt/lists/download.docker.com_linux_debian_dists_bullseye_InRelease
gpgv: Firma effettuata gio 8 dic 2022, 02:52:21 CET
gpgv:                utilizzando la chiave RSA 7EA0A9C3F273FCD8
gpgv: Firma valida da "Docker Release (CE deb) <docker@docker.com>"
il contenuto di /etc/apt/sources.list.d/docker.list:

Codice: Seleziona tutto

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian   bullseye stable
Chryses
Full Member
Full Member
Messaggi: 112
Iscritto il: 29/09/2018, 12:55

Re: Verifica certificato fallita - certificato non attendibile

Messaggio da Chryses »

Ok, allora, riassumiamo.
Eseguendo solo

Codice: Seleziona tutto

gpgv
ottengo

Codice: Seleziona tutto

$ gpgv
gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error
^C
gpgv: signal Interrupt caught ... exiting
E infatti non esiste la cartella

Codice: Seleziona tutto

.gnupg
Da notare che tale cartella non esiste neppure sul server funzionante
Non esiste invece il file

Codice: Seleziona tutto

/var/lib/apt/lists/download.docker.com_linux_debian_dists_bullseye_InRelease
se guardo il log che ti ho linkato, infatti riporta un errore e non scarica il file, se però scarico il file ed eseguo il check ho questo

Codice: Seleziona tutto

$ gpgv --keyring /etc/apt/keyrings/docker.gpg InRelease
gpgv: Signature made Thu 08 Dec 2022 02:52:21 AM CET
gpgv:                using RSA key 7EA0A9C3F273FCD8
gpgv: Good signature from "Docker Release (CE deb) <docker@docker.com>"
Ho provato a confrontare le chiavi del server funzionante e del mio, sono identiche

La verifica è ok giusto? Ma non riesce a stabilire il pairing, quindi è quel "particolare" processo che avviene durante la connessione che non va come dovrebbe giusto?
Rispondi