Sie können osslsigncode
ausprobierenUm eine EXE- oder MSI-Datei zu signieren, können Sie jetzt Folgendes tun:
osslsigncode sign -certs <cert-file> -key <der-key-file> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-in yourapp.exe -out yourapp-signed.exe
oder wenn Sie eine PEM- oder PVK-Schlüsseldatei mit einem Passwort zusammen mit einem PEM-Zertifikat verwenden:
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
oder wenn Sie auch einen Zeitstempel hinzufügen möchten:
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
Sie können ein Zertifikat und einen Schlüssel verwenden, die in einem PKCS#12-Container gespeichert sind:
osslsigncode sign -pkcs12 <pkcs12-file> -pass <pkcs12-password> \
-n "Your Application" -i http://www.yourwebsite.com/ \
-in yourapp.exe -out yourapp-signed.exe
So signieren Sie eine CAB-Datei, die Java-Klassendateien enthält:
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
Es ist eigentlich ganz einfach, Mono
zu verwenden 's Signtool; Der knifflige Teil (ausführlicher beschrieben im verlinkten Mozilla-Artikel) besteht darin, das Zertifikat im richtigen Format von Windows nach Linux zu kopieren.
Das Konvertieren der Windows-PFX-Zertifikatsdatei in PVK- und SPC-Dateien muss nur einmal durchgeführt werden, wenn das Zertifikat von Windows nach Linux kopiert wird;
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
Das eigentliche Signieren der exe ist einfach;
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