Configurare un lettore per la firma digitale con Linux: FATTO!!!
CNS con Dike, BIR4id, Ubuntu e FirefoxCome utilizzare la firma digitale sotto Linux senza impazzire

Questo articolo nasce dopo due giorni persi a configurare la mia CNS su Linux. Si quella della camera di commercio, modello 2019. Far funzionare Dike, BIT4id e accedere ai siti della pubblica amministrazione con CNS e Firefox.
Lettore
- Acquistare un lettore
Smart Card
- Richiedere una smart card CamCom (CNS)
Software
- Dike6
- BIT4id
- Driver
- Firme
Linux
- Ubuntu 20.04
Tempo
- Tanta pazienza ed una buona birra
CNS su Linux: software necessario



Installiamo i software per la CNS sotto Ubuntu Linux
Per far funzionare la CNS su Linux, la firma digitale della Camera di Commercio o qualunque altra riconosciuta da Infocert, dobbiamo installare prima alcuni software. Rechiamoci sul sito della Camera di Commercio ed installiamo Dike6 Go Sign.
Creiamo un account Go Sign è gratuito. Mai utilizzato, ma in futuro credo che la sua utilità crescerà.
Installiamo il software per Ubuntu dall’apposito link. Dike6 Go Sign per Ubuntu ci permette di firmare e crittografare qualunque tipo di documento sotto Linux.
Per far giare la nostra CNS su Linux sono necessari alcuni pacchetti aggiuntivi. Installiamoli da riga di comando dove non fossero già presenti:
libccid
pcscd
Consiglio di installare anche:
libusb-dev libusb++
libpcsclite1
libpcsclite-dev
libpcsc-perl
pcsc-tools
Dopo aver installato tutti i pacchetti necessari per far funzionare un lettore per smart card sotto Linux, verifichiamo il buon esito della procedura. Inserisci il lettore e controlla che sia stato riconosciuto con lsusb da riga di comando. Se non sai riconoscerlo è sufficiente dare il comando due volte. Una con il lettore inserito ed una no. Dovresti avere una voce in più con il lettore inserito.
A questo punto puoi scaricare i driver linux per il tuo lettore CNS. Io ho utilizzato BIT4id che trovi sul loro sito. Consiglio vivamente questo lettore di smart card perché leggero, compatto e completamente compatibile con Linux.
Molti produttori mettono a disposizione un loro software per smart card sotto linux. Segui le istruzioni di installazione come da sito. Se il software per CNS su Linux è presente puoi affiancarlo a Dike6, scegli tu. Io per un corretto uso e per un continuo aggiornamento su varie piattaforme ho preferito installarli entrambe. Non si sa mai. Già capitato che averne uno non funzionante il giorno di chiusura di un bando. Non è una bella cosa.
Dopo la corretta installazione dei driver e del software per CNS su Ubuntu Linux dovresti essere in grado di firmare direttamente dal software i documenti. Fai un test per essere certo che tutto funzioni.
Ora vediamo di procedere per operazioni più complesse. Con la tua CNS puoi autenticarti su siti della PA. Per fare ciò devi configurare l tuo Browser per riconoscere la tua smart card. Procediamo con le configurazioni web di dettaglio.
Configurazione della CNS su linux
Ora la tua CNS è configurata e funzionante sulla nostra macchina Linux. Lo vedi inserendola nella porta USB. Infatti si dovrebbe accendere la luce verde. Ma ciò purtroppo non basta e configurare anche il browser può essere un’esperienza niente male. Procediamo per gradi con la configurazione della CNS e del browser sotto linux in maniera semplice.
Scarica il middleware per Linux e la tua CNS. Si tratta della libreria per interfacciare Firefox o altri browser alla CNS. Per me è stato il passaggio più ostico perché non è immediatamente chiaro il modello da usare. Per scoprirlo usiamo Linux con la CNS collegata. Da riga di comando dai un pcsc_scan e leggi quanto appare nell’ultima riga. Nel mio caso:
Oberthur ID-One Cosmo V7-n it’s a java card 2.2.2
Ho cioè un cip Oberthur. La cosa buffa è che questa è la CNS ufficiale della Camera di Commercio, ma non esiste middleware per linux da scaricare sul loro sito al momento in cui ho scritto l’articolo. Cerca il middleware più idoneo alla tua carta. Sempre dalla sezione Download di Infocert dovresti avere i principali. Altrimenti utilizza google.
Per far funionare la mia CNS sotto Firefox ho dovuto scaricare il file: libbit4opki-amd64.deb ed installarlo. Cerca la versione più aggiornata. La libreria verrà installata in /usr/lib o in /usr/lib/local e si chiama libbit4opki.so o qualcosa del genere. Il nome è abbastanza simile anche per altre carte.
Ora scaricate i certificati di Infocert da installare sotto Firefox. Dovete scaricare sia InfoCert2 che InfoCert3.
Ma come si installa un certificato sotto Firefox? Presto fatto. Andate in Preferenze, Privacy e Sicurezza, Sicurezza, Certificati. Lo trovate in fondo alla schermata.
Selezionate Mostra certificati. Quindi Autorità. Selezionate Importa e caricate i due certificati di Infocert sotto Firefox. Vanno caricati tutti e due.
Ora premete il tasto Dispositivi di sicurezza. Selezionate Carica.
Al posto del Nome scrivete il nome del dispositivo o quello che vi piace, vi serve per associare mentalmente il lettore al driver. Da Sfoglia invece selezionate il driver del middleware per il lettore CNS che avete installato precedentemente. Nel mio caso libbit4opki.so. Date OK.
Se tutto è andato a buon fine vedrete la lucina del lettore lampeggiare per qualche secondo. Il vostro certificato è stato correttamente caricato. Per verificare questo passaggio dovrete semplicemente selezionare nuovamente Mostra Certificati. Vi dovrebbe essere richiesto il PIN della smart card. Se ciò non funziona vuol dire che avete sbagliato middleware.
Non sono ancora riuscito a configurare Google Chrome. In pratica non riesco a caricare il middleware. Non appena anche questa battaglia tra CNS e Linux sarà vinta aggiornerò l’articolo.
Buona burocrazia a tutti.
Configurazione CNS con Ubuntu Linux conclusa con successo!!!
Questo articolo è frutto della mia esperienza e di numerose ricerche onlineSe vuoi contattarmi o iscriverti alle mie newsletter o leggere altro…
Per quel che riguarda chrome, dopo che siamo sicuri che la parte hardware è completamente funzionante, è “sufficiente” localizzare il percorso della libreria opensc-pkcs11.so (nel mio ubuntu 20.04 è su /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so) chiudere le sessioni di chrome e lanciare
# modutil -dbdir sql:.pki/nssdb/ -add “OpenSC” -libfile /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
dopodiché si può andare per esempio su https://ca.arubapec.it/crtest/showcert.php e si verrà accolti dalla richiesta di pin.
Buona firma!
Grazie pr l’ottimo suggerimento
Ciao, grazie per l’ottimo articolo.
Mi trovo a dover rinnovare i certificati della CNS, che si fa online qui https://id.infocamere.it/infocamere/firma_digitale/richiesta_di_rinnovo
È necessario installare un tool di rinnovo: ho provato dal pc dell’ufficio con Windows, in pratica è un’app del browser che interagisce con il browser per leggere i certificati e rinnovarli. Purtroppo è un file exe; secondo voi c’è modo di farla funzionare su Linux?
Grazie,
Raffaella
Grazie per i complimenti sempre molto graditi. Di solito i certificati venivano rinnovati all’avvio del software DIKE, o almeno fino ad ora era così se non sbaglio. Hai provato ad installare wine e vedere se riesce a fare da ponte? Così al volo è l’unica idea che mi viene. Ho cambiato da poco pc e non ho ancora installato il tutto, se vedo soluzioni particolari provo a scriverle qui.
Bella guida, peccato che con ubuntu 21.10 e chromium non si possa più usare, nè tantomeno firefox (impossibile aggiungere il modulo).
E tutte le varie guide non portino a nessun risultato.
Grazie per i complimenti Carlo. Non ho usato la CNS sotto il browser ultimamente perché con lo SPID mi risulta inutile. Mi dici dove ti blocchi e cosa non funziona, magari riusciamo a risolvere.
Ciao, come Carlo ho provato ad aggiungere il modulo senza riuscire.
Il problema si verifica quando si prova a caricare il nuovo dispositivo di sicurezza in Firefox.
Premo “Dispositivi di sicurezza” e poi seleziono “Carica”, inserisco il nome e poi il percorso per il modulo. Quando premo OK esce l’errore “impossibile aggiungere il modulo”.
Per chi , come me, ha problemi con Chrome (ho penato tantissimo per riuscire a capire dove si annidava il problema della mancata presentazione del prompt di inserimento pin della CNS) occorre tenere presenti che le installazioni tramite flatpack ma anche attraverso pacchetti snap) crea problemi in fase di lettura dei certificati da parte di Chrome.
Invece l’installazione attraverso il pacchetto .deb (parlando di Ubuntu e distro derivate) o attraverso i sorgenti, rende pienamente leggibile la carta permettendo riconoscimento e autenticazione