Vous pouvez essayer osslsigncode
Pour signer un fichier EXE ou MSI, vous pouvez désormais :
osslsigncode sign -certs <cert-file> -key <der-key-file> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-in yourapp.exe -out yourapp-signed.exe
ou si vous utilisez un fichier de clé PEM ou PVK avec un mot de passe avec un certificat PEM :
osslsigncode sign -certs <cert-file> \
-key <key-file> -pass <key-password> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-in yourapp.exe -out yourapp-signed.exe
ou si vous souhaitez également ajouter un horodatage :
osslsigncode sign -certs <cert-file> -key <key-file> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-t http://timestamp.verisign.com/scripts/timstamp.dll \
-in yourapp.exe -out yourapp-signed.exe
Vous pouvez utiliser un certificat et une clé stockés dans un conteneur PKCS#12 :
osslsigncode sign -pkcs12 <pkcs12-file> -pass <pkcs12-password> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-in yourapp.exe -out yourapp-signed.exe
Pour signer un fichier CAB contenant des fichiers de classe Java :
osslsigncode sign -certs <cert-file> -key <key-file> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-jp low \
-in yourapp.cab -out yourapp-signed.cab
C'est en fait assez simple à faire en utilisant Mono
l'outil de signalisation ; la partie la plus délicate (décrite plus en détail dans l'article lié à Mozilla) consiste à copier le certificat dans le bon format de Windows vers Linux.
La conversion du fichier de certificat Windows PFX en fichiers PVK et SPC ne doit être effectuée qu'une seule fois lors de la copie du certificat de Windows vers Linux ;
openssl pkcs12 -in authenticode.pfx -nocerts -nodes -out key.pem
openssl rsa -in key.pem -outform PVK -pvk-strong -out authenticode.pvk
openssl pkcs12 -in authenticode.pfx -nokeys -nodes -out cert.pem
openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out authenticode.spc
En fait, signer l'exe est simple ;
signcode \
-spc authenticode.spc \
-v authenticode.pvk \
-a sha1 -$ commercial \
-n My\ Application \
-i http://www.example.com/ \
-t http://timestamp.digicert.com/scripts/timstamp.dll \
-tr 10 \
MyApp.exe