Trust certificate authority per firma digitale

Pubblicato il
Se si tenta di verificare la firma di un file p7m senza il certificato dell'ente certificatore (la CA), la verifica fallisce ("unable to load certificate") perché non abbiamo i certificati di fiducia della CA (i cosiddetti Trust). Tali Certificate Authority sono state definite per legge italiana e sono registrati sul CNIPA, che dal dicembre 2009 è diventato DigitPA, come portafoglio di certificati XML e li ho trovati sullo stesso sito all'indirizzo https://applicazioni.cnipa.gov.it/TSL/_IT_TSL_signed.xml. Per far in modo che openssl li gestisca bisogna metterli nel suo formato quindi:
wget -O - https://applicazioni.cnipa.gov.it/TSL/_IT_TSL_signed.xml | perl -ne 'if (/<X509Certificate>/) {
s/^\s+//; s/\s+$//;
s/<\/*X509Certificate>//g;
print "-----BEGIN CERTIFICATE-----\n";
while (length($_)>64) {
print substr($_,0,64)."\n";
$_=substr($_,64);
}
print $_."\n";
print "-----END CERTIFICATE-----\n";
}' >CA.pem
In tal modo abbiamo tutti i certificati presenti in un unico file CA.pem, purtroppo anche quelli che forse sono scaduti. Anche se scaduti potremmo aver bisogno di verificare un file vecchio e quindi ci possono servire anche gli scaduti. Per maggiori informazioni vedere l'articolo
Per gli aggiornamenti allo script consultare https://github.com/eniocarboni/getTrustCAP7m
Vedi tutte le FAQs

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *