↓ Salta al contenuto principale

CUPS: "Credentials are invalid", la stampante ha cambiato certificato

·1026 parole·5 minuti
❯ lineadicomando.it
Autore
❯ lineadicomando.it
Specs, Bugs and Log Console

Contesto essenziale
#

Una multifunzione Toshiba e-STUDIO4528A appena aggiunta in CUPS non stampava la pagina di prova. Il job restava in coda e la coda veniva disabilitata con il messaggio Credentials are invalid, che si riferisce al certificato TLS della stampante.

Quando la coda usa IPPS (IPP su TLS), CUPS applica il trust on first use: al primo collegamento salva il certificato della stampante in /etc/cups/ssl/ e da quel momento rifiuta qualsiasi certificato diverso. Molte stampanti si generano da sole un certificato autofirmato e lo rinnovano alla scadenza. Dopo il rinnovo CUPS vede un certificato diverso e blocca la coda.

Il caso è su Fedora 44 con CUPS 2.4, ma vale per qualsiasi stampante raggiunta via ipps:// o tramite dnssd://..._ipps._tcp.


Prerequisiti
#

  • Accesso sudo (/etc/cups/ssl/ è leggibile solo da root)
  • ipptool e openssl per interrogare la stampante

Installazione rapida
#

Fedora / RHEL
#

sudo dnf install cups-ipptool openssl

Debian/Ubuntu
#

sudo apt install cups-ipp-utils openssl

Arch Linux
#

sudo pacman -S cups openssl

Procedura passo-passo
#

1. Controllare lo stato della coda
#

lpstat -t

Output nel caso reale (righe rilevanti):

dispositivo per e-STUDIO4528A: dnssd://TOSHIBA%20e-STUDIO4528A-15850971._ipps._tcp.local/?uuid=...
la stampante e-STUDIO4528A è stata disabilitata da mer 14 ott 2026, 09:55:03
	Credentials are invalid
e-STUDIO4528A-91        alessandro        1024   mer 14 ott 2026, 09:55:03

Il servizio _ipps._tcp nell’URI conferma che la connessione è cifrata. La coda è ferma e il job della pagina di prova è ancora in attesa.


2. Leggere il log di CUPS
#

journalctl -u cups --since "-30min" --no-pager | grep -iE 'credentials|pki'

Output nel caso reale:

[Job 91] Credentials are invalid (Le nuove credenziali non sono valide per il nome.)
[Job 91] Printer credentials: MFP15850971 (issued by OrganizationName) / Mon, 04 Oct 2027 01:00:54 GMT / RSA-SHA256 / 3469C82DDE606623EB96848F4C85A653
[Job 91] Stored credentials: MFP15850971 (issued by OrganizationName) / Fri, 02 Oct 2026 08:00:02 GMT / RSA-SHA256 / 9172CB8249D02F78CA78D0325AA2E617
[Job 91] STATE: +cups-pki-invalid

Le due righe da confrontare sono:

  • Printer credentials: il certificato che la stampante presenta adesso, con scadenza nel 2027
  • Stored credentials: il certificato salvato da CUPS, scaduto il 2 ottobre 2026

Le impronte sono diverse, quindi CUPS segnala cups-pki-invalid e mette in pausa la coda.


3. Verificare il certificato della stampante
#

echo | openssl s_client -connect <ip-stampante>:631 2>/dev/null \
  | openssl x509 -noout -subject -dates -fingerprint -sha256

Output nel caso reale:

subject=C=CountryName, ST=StateName, O=OrganizationName, OU=OrganizationUnit, CN=MFP15850971, ...
notBefore=Oct  4 01:00:54 2026 GMT
notAfter=Oct  4 01:00:54 2027 GMT

Il certificato è stato generato il 4 ottobre: la stampante l’ha rinnovato da sola poco dopo la scadenza del precedente. I campi CountryName e OrganizationName sono i valori predefiniti del firmware, tipici di un certificato autofirmato generato in automatico.


4. Escludere altri problemi lato stampante
#

ipptool -tv ipps://<ip-stampante>/ipp/print get-printer-attributes.test \
  | grep -E 'printer-state|uri-authentication|uri-security'

Output nel caso reale:

uri-authentication-supported (keyword) = none
uri-security-supported (keyword) = tls
printer-state-message (textWithoutLanguage) = IPP Printer is Idle
printer-state (enum) = idle

La stampante è inattiva in attesa di lavori e non chiede autenticazione per stampare. Resta solo il certificato.


5. Individuare il certificato salvato
#

sudo ls -la /etc/cups/ssl/
-rw-------. 1 root lp 1486 28 apr 10.07 MFP15850971.local.crt

Il file ha il nome mDNS della stampante (MFP15850971.local). In questo caso risaliva ad aprile: la stessa stampante era già stata usata da questo host con una coda precedente.


6. Spostare il certificato e riattivare la coda
#

Rinominare il file invece di cancellarlo permette di tornare indietro:

sudo mv /etc/cups/ssl/<host>.local.crt /etc/cups/ssl/<host>.local.crt.bak
sudo cupsenable <stampante>

Al collegamento successivo CUPS non trova certificati salvati, accetta quello attuale e lo memorizza. Il job rimasto in coda riparte da solo.


7. Verificare
#

lpstat -p <stampante>
lpstat -W completed -o <stampante> | tail -3
sudo ls -la /etc/cups/ssl/

Output nel caso reale:

la stampante e-STUDIO4528A è inattiva.  è stata abilitata da mer 14 ott 2026, 10:03:38
e-STUDIO4528A-91        alessandro        1024   mer 14 ott 2026, 10:03:38
-rw-------. 1 root lp 1486 14 ott 10.03 MFP15850971.local.crt

Il job 91 risulta completato e in /etc/cups/ssl/ c’è un nuovo certificato con la data di oggi. Quando non serve più, il file .bak si può eliminare.


Errori comuni
#

  • Si cambia la password admin o si cercano credenziali utente Credentials are invalid in questo contesto si riferisce al certificato TLS, non a utente e password. Confermarlo con le righe Printer credentials e Stored credentials del journal

  • Si ricrea la coda da zero e l’errore resta Il certificato salvato è legato al nome host della stampante, non alla coda. Eliminare e ricreare la coda non tocca /etc/cups/ssl/

  • cupsenable riattiva la coda ma si blocca subito di nuovo Il certificato salvato è ancora al suo posto. Controllare il nome del file in /etc/cups/ssl/: deve coincidere con l’host che compare nel log (Connecting to <host>:631)

  • Anche il certificato presentato dalla stampante è scaduto Controllare notAfter con il comando del passo 3. Se la data è passata, il problema è lato stampante: conviene rigenerare il certificato dall’interfaccia di amministrazione della stampante

  • ls /etc/cups/ssl/ restituisce Permission denied La directory è accessibile solo a root e al gruppo lp: anteporre sudo


Note operative
#

  • Il problema si ripresenta a ogni rinnovo del certificato. Nel caso reale accadrà intorno al 4 ottobre 2027, data di scadenza del certificato attuale. Si può leggere in anticipo con il comando del passo 3
  • Per evitarlo ci sono due strade:
    • caricare sulla stampante un certificato con una scadenza lunga, autofirmato o firmato da una CA interna, dall’interfaccia di amministrazione (su Toshiba la sezione TLS/certificati)
    • usare una coda IPP senza cifratura. È accettabile solo su una rete interna fidata, perché i documenti viaggiano in chiaro:
sudo lpadmin -p <stampante> -v ipp://<ip-stampante>/ipp/print
  • Prima di riattivare la coda, conviene accertarsi che il nuovo certificato provenga davvero dalla stampante. Un certificato cambiato senza motivo può anche indicare un dispositivo diverso che ha preso lo stesso nome o lo stesso indirizzo. Nel caso reale le date di emissione e il nome CN corrispondevano al rinnovo automatico
  • Se in /etc/cups/ssl/ ci sono certificati di stampanti che non esistono più, si possono spostare altrove senza conseguenze: CUPS li riscrive al primo collegamento

Riferimenti
#