CodeSignTool ist ein sicheres, datenschutzorientiertes, plattformübergreifendes Java-Befehlszeilendienstprogramm zum Remote-Signieren von Microsoft Authenticode und Java-Codeobjekten eSignierer EV-Code-Signing-Zertifikate. Hashes der Dateien werden gesendet an SSL.com zum Signieren, damit der Code selbst nicht gesendet wird. Dies ist ideal, wenn sensible Dateien signiert werden müssen, aber nicht zum Signieren über das Kabel gesendet werden sollten. CodeSignTool ist auch ideal für automatisierte Batch-Prozesse für hochvolumige Signierungen oder die Integration in bestehende CI/CD-Pipeline-Workflows.
Informationen zu allen Dateitypen, die CodeSignTool signieren kann, finden Sie in diesem Artikel: Von eSigner unterstützte Dateitypen
Für Anweisungen zur Vorgehensweise Automatisieren Sie EV Code Signing mit signtool.exe oder certutil.exe lesen Sie bitte diese Anleitung.
Wenn Sie stattdessen esigner zum Signieren von Dokumenten verwenden möchten, bitte siehe diese DocSignTool-Anleitung.
CodeSignTool-Installation
Um die aktuelle Version von CodeSignTool zu installieren, laden Sie einfach die richtige Datei für Ihr Betriebssystem herunter und entpacken Sie sie:
Beachten Sie, dass der Windows-Download Java Runtime enthält, aber die Linux/macOS-Version erfordert, dass Java Runtime auf Ihrem Computer installiert ist. Die Windows-Version des Befehls ist eine Batchdatei (CodeSignTool.bat
) und die Linux / macOS-Version ist ein Shell-Skript (CodeSignTool.sh
).
CodeSignTool-Verwendungsübersicht
Verwendung: CodeSignTool [-hV] [COMMAND] [PARAMETERS]
Zubehör:
-h
,--help
: Hilfemeldung anzeigen und beenden.-V
,--version
: Versionsinformationen anzeigen und beenden.
Befehle:
get_credential_ids
: Geben Sie die Liste der eSigner-Anmeldeinformationen aus, die einem bestimmten Benutzer zugeordnet sind.credential_info
: Geben Sie Schlüssel- und Zertifikatsinformationen in Bezug auf eine Anmeldeinformations-ID aus.sign
: Codeobjekt für Vorzeichen und Zeitstempel.batch_sign
: Signieren und Zeitstempeln mehrerer Codeobjekte mit einem OTP.hash
: Hash(es) für die spätere Verwendung mit . vorberechnenbatch_hash_sign
Befehl.batch_sign_hash
: Hash(es) vorberechnet mit signierenhash
Befehl.
Parameter:
-access_token=<TOKEN>
: OAuth Zugangstoken.-credential_id=<CREDENTIAL_ID>
: Berechtigungs-ID zum Signieren des Zertifikats.-input_dir_path=<PATH>
: Eingabeverzeichnis für zu signierende Codeobjekte, Hashes berechnen lassen oder unsignierte Dateien und entsprechende Hashes zum Signieren auswählen.-input_file_path=<PATH>
: Pfad des zu signierenden Codeobjekts.-otp=<OTP>
: OAuth-OTP-Wert von der Authentifizierungs-App.-output_dir_path=<PATH>
: Verzeichnis, in das signierte Codeobjekte geschrieben werden.-password=<PASSWORD>
: Passwort für das SSL.com-Konto.-program_name=<PROGRAM_NAME>
: Name des Programms (nur für MSI-Installer).-totp_secret=<TOTP_SECRET>
: OAuth TOTP-Geheimnis-username=<USERNAME>
: Benutzername des SSL.com-Kontos-override="true"
: Überschreibt die signierte Datei
-password="P!@^^ssword12"
).CodeSignTool-Befehle
get_credential_ids
Geben Sie die Liste der eSigner-Anmeldeinformationen aus, die einem bestimmten Benutzer zugeordnet sind. Parameter -username
und dem -password
erforderlich sind.
Verwendung: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>
Beispiel:
CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41" Credential ID(s): - fe537ace-e132-52a9-c2e7-egcd2ac3f1e6
eingeben CodeSignTool get_credential_ids
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.
Anmeldeinformationen
Geben Sie Schlüssel- und Zertifikatsinformationen in Bezug auf eine Anmeldeinformations-ID aus. Parameter -credential_id
, -username
und -password
erforderlich sind.
Verwendung: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>
Beispiel:
CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" Informationen zum EVCS-Zertifikat Betreff: - Betreff DN: OID.1.3.6.1.4.1.311.60.2.1.3 1.3.6.1.4.1.311.60.2.1.2=USA, OID.2.5.4.15=Nevada, OID.20081614243=Private Organisation, CN=SSL Corp, SERIALNUMBER=NV26, O=SSL Corp, L=Houston, ST=Texas, C=US - Zertifikatsablauf: Mo. Feb 21 21:37:2024 EST 3 - Aussteller-DN: CN=SSL.com EV Code Signing Intermediate CA RSA RXNUMX, O=SSL Corp, L=Houston, ST=Texas , C=US
eingeben CodeSignTool credential_info
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.
scan_code
Aktiviert den Malware-Scan vor dem Signieren. Dadurch wird Ihre Datei auf mögliche Malware gescannt, um eine Code-Kompromittierung zu vermeiden und verhindert das Signieren von Code, wenn Malware erkannt wird.
Verwendung: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>
Ausführlichere Informationen zu den Sicherheitsvorteilen des Malware-Scan-Dienstes von SSL.com finden Sie auf unserer Website dedizierte Seite.
Schild
Zeichen- und Zeitstempelcodeobjekt. Parameter -username
, -password
und -input_file_path
erforderlich sind. -credential_id
ist nur für Benutzer mit mehr als einem eSigner-Codesignaturzertifikat erforderlich. -output_dir_path
, -program_name
und -totp_secret
sind optional.
Verwendung: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
Optionale Parameter:
- If
-credential_id
wird weggelassen und der Benutzer hat nur ein eSigner-Codesignaturzertifikat. CodeSignTool verwendet dies standardmäßig. Wenn der Benutzer über mehr als ein Codesignaturzertifikat verfügt, ist dieser Parameter obligatorisch. - If
-output_dir_path
wird weggelassen, die in angegebene Datei-input_file_path
wird mit der signierten Datei überschrieben. CodeSignTool fordert den Benutzer auf, bevor die Datei überschrieben wird. - If
-program_name
Wenn beim Signieren eines MSI-Installationsprogramms vorhanden ist, wird der Wert im Bestätigungsdialog als Programmname angezeigt. - If
-totp_secret
vorhanden ist, berechnet CodeSignTool ein zeitbasiertes OTP für die Signatur, wodurch die automatische Verwendung des Tools ermöglicht wird. Wenn dieser Parameter nicht vorhanden ist, wird der Benutzer zur manuellen OTP-Eingabe aufgefordert.
Beispiele:
Manuelle OTP-Eingabe:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.exe Geben Sie das OTP ein - Drücken Sie die Eingabetaste, um fortzufahren : 884646 Code erfolgreich signiert: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
Automatisierte OTP-Generierung:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
eingeben CodeSignTool sign
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.
Error: invalid otp
Beim Versuch, eine Datei zu signieren, kann dies durch eines oder mehrere der folgenden Probleme verursacht werden:
- Der QR-Code, den Sie in Ihre Authentifizierungs-App gescannt haben, stimmt nicht mit dem Benutzernamen, dem Kennwort und / oder der Anmeldeinformations-ID Ihres Befehls überein. Dies könnte passieren, wenn:
- Sie haben mehrere Konten für 2FA auf Ihrem Gerät konfiguriert und das falsche ausgewählt.
- Sie versuchen, Ihre Anmeldeinformationen für a zu verwenden gemeinsames Zertifikat, aber einen von einem Teamkollegen freigegebenen QR-Code von seinem Konto gescannt.
- Das von Ihnen eingegebene OTP ist bereits abgelaufen.
- Ihr Befehl enthält ein ungültiges TOTP-Geheimnis.
batch_sign
Signieren und stempeln Sie bis zu 100 Codedateien mit einem OTP. Parameter -username
, -password
und -input_dir_path
erforderlich sind. -credential_id
ist nur für Benutzer mit mehr als einem eSigner-Codesignaturzertifikat erforderlich. -output_dir_path
, -program_name
und -totp_secret
sind optional.
Verwendung: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
Wenn ein Benutzer eine Batch-Signierung mit Malware-Prüfung durchführen möchte, muss jedes Codeobjekt im Batch zunächst mit dem gescannt werden scan_code
Befehl und dann danach, die batch_sign
Der Befehl kann ausgeführt werden.
Optionale Parameter:
- If
-credential_id
wird weggelassen und der Benutzer hat nur ein eSigner-Codesignaturzertifikat. CodeSignTool verwendet dies standardmäßig. Wenn der Benutzer über mehr als ein Codesignaturzertifikat verfügt, ist dieser Parameter obligatorisch. - If
-output_dir_path
weggelassen wird, die in specified angegebenen Dateien-input_dir_path
wird mit den signierten Dateien überschrieben. CodeSignTool fordert den Benutzer auf, bevor die Datei überschrieben wird. - If
-program_name
Wenn beim Signieren eines MSI-Installationsprogramms vorhanden ist, wird der Wert im Bestätigungsdialog als Programmname angezeigt. - If
-totp_secret
vorhanden ist, berechnet CodeSignTool ein zeitbasiertes OTP für die Signatur, wodurch die automatische Verwendung des Tools ermöglicht wird. Wenn dieser Parameter nicht vorhanden ist, wird der Benutzer zur manuellen OTP-Eingabe aufgefordert.
Beispiel:
CodeSignTool batch_sign -username=john.doe@example.com -password="P0z9@lxo41" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output Geben Sie das OTP ein: 455145 - Drücken Sie XNUMX, um fortzufahren Stapelsignierbefehl erfolgreich ausgeführt. Ausgabeverzeichnis für signierte Dateien: output
eingeben CodeSignTool batch_sign
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.
Hash-
Berechne Hash(s) für die spätere Verwendung mit batch_hash_sign
Befehl. Parameter -input_dir_path
erforderlich. -program_name
es ist optional
Verwendung: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]
Optionale Parameter:
- If
-program_name
Wenn beim Signieren eines MSI-Installationsprogramms vorhanden ist, wird der Wert im Bestätigungsdialog als Programmname angezeigt.
Beispiel:
CodeSignTool hash -input_dir_path=Eingabe-Hash-Befehl wurde erfolgreich ausgeführt. Hash-Dateien erstellt bei: input
eingeben CodeSignTool hash
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.
batch_sign_hash
Hash(es) vorberechnet mit signieren hash
Befehl. Parameter -access_token
, input_dir_path
, -otp
und output_dir_path
erforderlich sind. -credential_id
ist nur für Benutzer mit mehr als einem eSigner-Codesignaturzertifikat erforderlich.
Verwendung: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>
Optionale Parameter:
- If
-credential_id
wird weggelassen und der Benutzer hat nur ein eSigner-Codesignaturzertifikat. CodeSignTool verwendet dies standardmäßig. Wenn der Benutzer über mehr als ein Codesignaturzertifikat verfügt, ist dieser Parameter obligatorisch.
Beispiel:
CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU 0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9 hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82 4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9 qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9 -c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392 Batch sign hash command executed successfully. Output directory for signed files: output
eingeben CodeSignTool batch_sign_hash
Ohne die erforderlichen Parameter werden Verwendungsinformationen für den Befehl angezeigt.