Home Insegnanti Contattami Portfolio

Firmare un file .exe

1. Genera un certificato autofirmato con OpenSSL

  1. scaricare openssl
    1. https://www.youtube.com/watch?v=coaGBdUcKiw&ab_channel=StraightToCoding
  1. Genera una chiave privata (private key)
    • genpkey -algorithm RSA -out chiave_privata.key -aes256
    • inserire la password
    • ripetere la password
  1. Genera un certificato autofirmato in formato X.509 usando la chiave privata
    • openssl req -new -x509 -key chiave_privata.key -out certificato.crt -days 365
    • inserire la password creata precedentemente
    • compilare i campi richiesti

Questi comandi genereranno:

2. Crea il file .pfx

  1. Per creare il file .pfx contenente sia la chiave privata che il certificato:
    • openssl pkcs12 -export -out certificato.pfx -inkey chiave_privata.key -in certificato.crt
    • inserire la password usata in precedenze
    • inserire una password di esportazione
    • ripeter la password

3. Firma il file .exe con SignTool (solo su Windows)

  1. installare SignTool (solo per Windows)
  1. Firmare il file .exe, 2 modi possibili:
    1. tramite cmd:

      signtool sign /f certificato.pfx /p PASSWORD /t http://timestamp.digicert.com /v nomefile.exe

    1. tramite applicazione SignGUI

    Il programma sarà stato firmato correttamente nel momento in cui, facendo tasto destro sul file, andando su proprietà, sarà comparsa la voce “firme digitali”.

Nota:
Se si sta firmando un file .exe, scritto in java ed esportato da .jar a .exe usando launch4j, se si prova ad aprire l’eseguibile dopo la firma si otterrà probabilmente il seguente errore:

https://github.com/ebourg/jsign/issues/80

Per risolvere questo problema, occorre seguire i seguenti passaggi:

  1. nella sezione “Classpath” di launch4j occorre selezionare il file .jar che si vuole esportare, il programma capirà in automatico la main class e in questo modo è possibile risolvere il problema
  1. Dopo aver rigenerato il file .exe grazie a launch4j, sarĂ  a questo punto possibile ri-firmarlo.