Blia.it NON utilizza cookie (v. informativa)

Pagine principali

(clicca sul titolo per altri link o qui per il menu completo)

libri on line

firma digitale e cns

Esperimenti con HTML5

Link

Logo Saela.eu

Logo Neapolis Rai
Old Blia.it su Neapolis (Rai)

Opensignature

NO Bitcoin

Innovatore.it

Sixthlane

Road Trip Italy

Sandro Leggio

Centro Ibleo di Atletica Leggera

Logo ASD Libertas Acate
ASD Libertas Acate

Logo Blia.it

Novità del sito: nuova versione dei giochi da scacchiera giocabili online Gomoku e Halatafl

  

Novità del sito: nuova versione dei giochi da scacchiera giocabili online Gomoku e Halatafl

Istruzioni per firmare digitalmente (CAdES compatibile)

in ambiente Linux con Openssl e smartcard (per esperti o sviluppatori)


Software da scaricare:

Sorgenti di Openssl v.1.0.1g
Patch realizzata da noi per il supporto CAdES di Openssl
Engine PKCS11 per Openssl (sudo apt-get install libengine-pkcs11-openssl)

oppure, se volete usare il nuovo openssl 1.1.0
Sorgenti di Openssl v.1.1.0
Patch per openssl 1.1.0
Engine PKCS11 per Openssl 1.1.0 (sudo apt-get install libp11-2)

Opensc (sudo apt-get install opensc)
Driver PKCS11 del costruttore della smart card

  1. Per prima cosa dobbiamo applicare la patch e compilare openssl
    - patch -Np1 -r /dev/null < cades.patch
    - ./config && make && sudo make install

  2. assicuriamoci che la versione di openssl con la patch sia stata compilata correttamente eseguendo il comando /usr/local/ssl/bin/openssl cms ? tra le varie opzioni dovremmo trovare -cades, se sì, openssl è pronto

  3. procuriamoci alcuni dati che ci serviranno successivamente:
    - pkcs11-tool --module libbit4ipki.so -O (elenca gli oggetti presenti nella smart card), dovremmo trovarci qualcosa del genere:
    Certificate Object, type = X.509 cert
    label:      DS User Certificate1
    ID:         123456
    
    - prendiamo nota dell'ID della chiave/certificato 123456
    - scarichiamo il certificato con pkcs11-tool --module libbit4ipki.so -r --type cert --id 123456 > certificato.der
    - convertiamo il certificato dal formato binario (DER) al formato test (PEM) con openssl x509 -in certificato.der -inform der -text -out certificato.pem

  4. Creiamo un file di configurazione per openssl, ad esempio openssl.cnf in cui scriviamo
    openssl_conf            = openssl_init
    [ openssl_init ]
    engines = engine_section
    [ engine_section ]
    pkcs11 = pkcs11_section
    [ pkcs11_section ]
    engine_id = pkcs11
    dynamic_path = /usr/lib/ssl/engines/engine_pkcs11.so
    MODULE_PATH = /usr/lib/libbit4ipki.so
    
    (ovviamente i percorsi dei file possono cambiare)

  5. creiamo un file con comandi bash, ad esempio firma.sh in cui mettiamo:
    OPENSSL_CONF=./openssl.cnf
    export OPENSSL_CONF
    openssl cms -nosmimecap -md sha256 -nodetach -binary -cades -stream -outform DER -sign -signer certificato.pem \ 
    -inkey 123456 -keyform engine -in $1 -out $1.p7m -engine pkcs11
    
    (N.B. se si tratta di aggiungere una firma ad un documento precedentemente firmato, quindi nel caso di controfirma o firme multiple occorre sostituire la terza riga dello script con:
    openssl cms -nosmimecap -md sha256 -nodetach -binary -cades -stream -outform DER -resign -signer certificato.pem \
    -inkey 123456 -keyform engine -inform der -in $1 -out $1.p7m -engine pkcs11 )
  6. siamo pronti per firmare: firma.sh miotesto.txt

Per dubbi, commenti e proposte potete usare l'email in fondo alla pagina.

lo staff di Blia.it