Hallo, wer kennt sich hier aus mit dem sog. Singntool.exe? Man braucht das, um Code Signing durchführen zu können. Ein OV Code Signing Zertifikat habe ich von SSLmarket gekauft und jetzt funktioniert das Signtool nicht. Das Problem ist, daß das immer nur ganz kurz öffnet und dann sofort wieder schließt. Wird also irgendwie an der Ausführung gehindert. Wie kann man das ändern? Ich weiß nicht, woran das liegt und bitte hier dringend um Hilfe, Danke!
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Signtool.exe ist blockiert. Wie kann man die Blockierung beseitigen?
- Ersteller Baru
- Erstellt am
TheCadillacMan
Captain
- Registriert
- Juni 2005
- Beiträge
- 3.188
Wurde es mit Parametern gestartet? SignTool ist ein CMD-Tool und hat keine Oberfläche. Wenn man es ohne Parameter startet beendet es sich gleich wieder.
madmax2010
Fleet Admiral
- Registriert
- Juni 2018
- Beiträge
- 35.718
https://learn.microsoft.com/en-us/windows/win32/seccrypto/using-signtool-to-sign-a-file
Der Entwickler hat da eine Anleitung.
Aber: Bist du sicher, dass Codesigning das ist was du willst und brauchst? Das macht schon unter normalen Umständen Software weder sicherer noch vertrauenswürdiger ..
Der Entwickler hat da eine Anleitung.
Aber: Bist du sicher, dass Codesigning das ist was du willst und brauchst? Das macht schon unter normalen Umständen Software weder sicherer noch vertrauenswürdiger ..
Ist aber unter Windows mit der einzige Weg den Edge Download Shield zu umgehen. Also das Ding, was mosert wenn die Datei zu selten heruntergeladen wird.madmax2010 schrieb:Aber: Bist du sicher, dass Codesigning das ist was du willst und brauchst? Das macht schon unter normalen Umständen Software weder sicherer noch vertrauenswürdiger ..
madmax2010
Fleet Admiral
- Registriert
- Juni 2018
- Beiträge
- 35.718
das von deinem Betriebssystem. Vielleicht geht sogar powershell. Schlag mal nachBaru schrieb:Danke, aber was für ein CMD muß ich dann benutzen und wie komme ich da hin?
Tornhoof schrieb:Ist aber unter Windows mit der einzige Weg den Edge Download Shield zu umgehen
Fucking hell.
Unpassende Sicherheitsmethoden an der falschen Stelle. Umgehen ist der richtige Begriff..
Gemini sagt:
Hallo! Keine Sorge, das Problem, dass signtool.exe sofort wieder schließt, ist ganz normal und kein Fehler. Es liegt daran, dass signtool.exe ein Kommandozeilen-Tool ist. Das bedeutet, es ist nicht dafür gedacht, per Doppelklick geöffnet zu werden, sondern muss über die Eingabeaufforderung (CMD) oder PowerShell mit bestimmten Befehlen und Parametern ausgeführt werden.
Wenn Sie es einfach anklicken, startet es kurz, sieht, dass keine Anweisungen (Parameter) übergeben wurden, und schließt sich sofort wieder.
Angenommen, signtool.exe ist unter C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe installiert, Ihr Zertifikat ist C:\Users\IhrName\Desktop\mein_codesigning.pfx mit dem Passwort MeinGeheimesPasswort123, und die zu signierende Datei ist C:\MeineSoftware\MeinProgramm.exe:
DOS
"C:\Program Files (x86)\Windows Kits\<span>10</span>\bin\<span>10</span>.<span>0</span>.<span>19041</span>.<span>0</span>\x64\signtool.exe" sign /f "C:\Users\IhrName\Desktop\mein_codesigning.pfx" /p MeinGeheimesPasswort123 /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\MeineSoftware\MeinProgramm.exe"<br>
Hallo! Keine Sorge, das Problem, dass signtool.exe sofort wieder schließt, ist ganz normal und kein Fehler. Es liegt daran, dass signtool.exe ein Kommandozeilen-Tool ist. Das bedeutet, es ist nicht dafür gedacht, per Doppelklick geöffnet zu werden, sondern muss über die Eingabeaufforderung (CMD) oder PowerShell mit bestimmten Befehlen und Parametern ausgeführt werden.
Wenn Sie es einfach anklicken, startet es kurz, sieht, dass keine Anweisungen (Parameter) übergeben wurden, und schließt sich sofort wieder.
So verwenden Sie Signtool.exe richtig:
Um Ihr OV Code Signing Zertifikat zu verwenden und Code zu signieren, müssen Sie signtool.exe über die Kommandozeile (CMD) ausführen.- Speicherort von Signtool.exe finden:
Signtool.exe ist Teil des Windows SDK (Software Development Kit). Sie finden es normalerweise in einem Pfad ähnlich wie:
C:\Program Files (x86)\Windows Kits\10\bin\<VERSION>\x64\ (oder x86, je nach Ihrer Architektur und der SDK-Version).
Die VERSION variiert (z.B. 10.0.19041.0).
Der einfachste Weg ist oft, die "Developer Command Prompt for VS" oder "x66 Native Tools Command Prompt for VS" zu nutzen, die mit Visual Studio oder dem Windows SDK installiert werden, da diese die Umgebungsvariablen bereits korrekt setzen. Alternativ müssen Sie den vollen Pfad zu signtool.exe in der normalen CMD angeben oder den Pfad zu signtool.exe zu Ihren System-Umgebungsvariablen hinzufügen. - Den CMD-Befehl ausführen:
Der grundlegende Befehl zum Signieren einer ausführbaren Datei (.exe, .dll, .msi, .cab etc.) mit einem .pfx-Zertifikat sieht wie folgt aus:
DOS
"C:\Pfad\zu\Ihrer\signtool.exe" sign /f "C:\Pfad\zu\Ihrem\IhrZertifikat.pfx" /p IhrPasswort /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\Pfad\zu\Ihrer\DateiDieSigniertWerdenSoll.exe"<br>
Erläuterung der Parameter:
- "C:\Pfad\zu\Ihrer\signtool.exe": Ersetzen Sie dies durch den tatsächlichen Pfad zu Ihrer signtool.exe. Nutzen Sie Anführungszeichen, falls der Pfad Leerzeichen enthält.
- sign: Der Befehl, um eine Datei zu signieren.
- /f "C:\Pfad\zu\Ihrem\IhrZertifikat.pfx": Gibt die .pfx-Datei Ihres Code-Signing-Zertifikats an. Dies ist die Datei, die Ihr privates Schlüsselpaar und das Zertifikat enthält. Stellen Sie sicher, dass Sie diese Datei von SSLmarket erhalten haben oder aus dem Zertifikatsspeicher exportiert haben.
- /p IhrPasswort: Das Passwort, das Sie für Ihre .pfx-Datei festgelegt haben.
- /tr http://timestamp.digicert.com: Dies ist sehr wichtig! Es fügt einen Zeitstempel hinzu. Ein Zeitstempel stellt sicher, dass Ihre Signatur auch nach Ablauf Ihres Zertifikats gültig bleibt. http://timestamp.digicert.com ist ein häufig verwendeter und zuverlässiger RFC3161-Zeitstempelserver. Andere Server können auch verwendet werden (z.B. von Sectigo/Comodo, GlobalSign etc.).
- /td sha256: Gibt den Digest-Algorithmus für den Zeitstempel an (hier SHA256).
- /fd sha256: Gibt den Dateidigest-Algorithmus an (hier SHA256). SHA256 ist der aktuelle Standard und empfohlen.
- "C:\Pfad\zu\Ihrer\DateiDieSigniertWerdenSoll.exe": Ersetzen Sie dies durch den vollständigen Pfad zu der ausführbaren Datei (.exe, .dll, etc.), die Sie signieren möchten. Nutzen Sie auch hier Anführungszeichen, falls der Pfad Leerzeichen enthält.
Angenommen, signtool.exe ist unter C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe installiert, Ihr Zertifikat ist C:\Users\IhrName\Desktop\mein_codesigning.pfx mit dem Passwort MeinGeheimesPasswort123, und die zu signierende Datei ist C:\MeineSoftware\MeinProgramm.exe:
DOS
"C:\Program Files (x86)\Windows Kits\<span>10</span>\bin\<span>10</span>.<span>0</span>.<span>19041</span>.<span>0</span>\x64\signtool.exe" sign /f "C:\Users\IhrName\Desktop\mein_codesigning.pfx" /p MeinGeheimesPasswort123 /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\MeineSoftware\MeinProgramm.exe"<br>
Schritte zur Durchführung:
- Öffnen Sie die Eingabeaufforderung (CMD) als Administrator:
- Suchen Sie im Startmenü nach "CMD" oder "Eingabeaufforderung".
- Klicken Sie mit der rechten Maustaste darauf und wählen Sie "Als1 Administrator ausführen".
- Navigieren Sie zum Verzeichnis Ihrer Dateien (optional, aber hilfreich):
Sie können zum Verzeichnis Ihrer zu signierenden Datei wechseln, um die Pfade im Befehl zu verkürzen. Beispiel:
cd C:\MeineSoftware - Führen Sie den signtool Befehl aus:
Kopieren Sie den angepassten Befehl in die CMD und drücken Sie Enter.
Häufige Probleme und Lösungen:
- signtool.exe nicht gefunden: Stellen Sie sicher, dass der Pfad zu signtool.exe korrekt ist oder dass Sie eine "Developer Command Prompt" verwenden.
- .pfx Datei oder Passwort falsch: Überprüfen Sie den Pfad zur .pfx-Datei und das Passwort. Stellen Sie sicher, dass das Zertifikat korrekt exportiert wurde.
- Zertifikat im Zertifikatsspeicher:Wenn Ihr Zertifikat im Windows-Zertifikatsspeicher (z.B. unter "Persönlich" für den aktuellen Benutzer oder den lokalen Computer) installiert ist und nicht als .pfx vorliegt, können Sie es auch direkt aus dem Store referenzieren:
DOS
signtool sign /s My /n "Ihr Zertifikatsname hier" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\Pfad\zu\Ihrer\DateiDieSigniertWerdenSoll.exe"<br>- /s My: Sucht im "Persönlich"-Speicher (My = Eigene Zertifikate).
- /n "Ihr Zertifikatsname hier": Der Antragstellername (Subject) Ihres Zertifikats.
Mir scheint da fehlen rudimentäre Grundlagen bei dir.Baru schrieb:Danke, aber was für ein CMD muß ich dann benutzen und wie komme ich da hin?
Es ist absolut normal, dass sich Consolen Anwendung beim nach einem einfachen Klicken wieder schließen.
Edit: Siehe kommentar über mir: Nutz doch die Pseudo-KI's
Vielen Dank für die ausführliche Anleitung, aber bei mir liegt keine .pfx-Datei vor, sondern das Zertifikat ist auf Token-USB-Stick. Das ist ja jetzt anscheinend überall Pflicht. Ich brauche da also zusätzlich die SafeNet App und die habe ich auch schon. Wie geht das denn dann in dem Zusammenhang?
Zuletzt bearbeitet:
TheCadillacMan
Captain
- Registriert
- Juni 2005
- Beiträge
- 3.188
Die automatische Zertifikatauswahl mit dem /a-Switch sollte das richtige Zertifikat vom Token nehmen:
Code:
signtool sign /a /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 MeinProgramm.exe
Wirklich zuverlässig vermeiden lässt sich das nur mit einem EV-Zertifikat. Mit den einfacheren OV-Certs muss auch noch etwas Reputation mit SmartScreen aufgebaut werden bevor der Dialog nicht mehr erscheint.Tornhoof schrieb:Ist aber unter Windows mit der einzige Weg den Edge Download Shield zu umgehen.
Gemini sagt:
Ah, vielen Dank für diese wichtige Information! Das ändert die Situation erheblich. Sie haben absolut Recht, dass die Speicherung von Code Signing Zertifikaten auf Hardware-Token (wie USB-Tokens) oder HSMs (Hardware Security Modules) inzwischen Standard und oft Pflicht ist, insbesondere für OV (Organization Validated) und EV (Extended Validation) Code Signing Zertifikate. Dies ist eine Anforderung des CA/Browser Forums zur Erhöhung der Sicherheit von Code-Signaturen.
Wenn Ihr Zertifikat auf einem SafeNet-Token liegt, greift signtool.exe nicht direkt auf eine .pfx-Datei zu. Stattdessen kommuniziert es über den Kryptografischen Dienstanbieter (CSP) oder Key Storage Provider (KSP) des SafeNet-Tokens mit dem Zertifikat, das im Windows-Zertifikatsspeicher sichtbar ist.
Die schlechte Nachricht (aus Ihrer Sicht): Es ist extrem unwahrscheinlich, dass Sie heute noch einen seriösen Verkäufer für OV Code Signing Zertifikate finden, der Ihnen eine .pfx-Datei ohne Hardware-Token zur Verfügung stellt und damit die Nutzung von DigiCertUtil im alten Sinne ermöglicht.
Ah, vielen Dank für diese wichtige Information! Das ändert die Situation erheblich. Sie haben absolut Recht, dass die Speicherung von Code Signing Zertifikaten auf Hardware-Token (wie USB-Tokens) oder HSMs (Hardware Security Modules) inzwischen Standard und oft Pflicht ist, insbesondere für OV (Organization Validated) und EV (Extended Validation) Code Signing Zertifikate. Dies ist eine Anforderung des CA/Browser Forums zur Erhöhung der Sicherheit von Code-Signaturen.
Wenn Ihr Zertifikat auf einem SafeNet-Token liegt, greift signtool.exe nicht direkt auf eine .pfx-Datei zu. Stattdessen kommuniziert es über den Kryptografischen Dienstanbieter (CSP) oder Key Storage Provider (KSP) des SafeNet-Tokens mit dem Zertifikat, das im Windows-Zertifikatsspeicher sichtbar ist.
So verwenden Sie Signtool.exe mit einem SafeNet-Token:
- Token einstecken und SafeNet App starten:
Stellen Sie sicher, dass Ihr SafeNet-Token eingesteckt und vom System erkannt wird. Die SafeNet Authentication Client (oder ähnliche SafeNet-Software) sollte installiert und idealerweise im Hintergrund ausgeführt werden, um die Kommunikation zwischen dem System und dem Token zu gewährleisten. - Zertifikat im Windows-Zertifikatsspeicher finden:
Auch wenn das Zertifikat auf dem Token liegt, wird es vom SafeNet-Treiber im Windows-Zertifikatsspeicher "sichtbar" gemacht.
- Drücken Sie Win + R, geben Sie certmgr.msc ein und drücken Sie Enter.
- Navigieren Sie zu Persönlich -> Zertifikate.
- Hier sollte Ihr Code Signing Zertifikat aufgeführt sein. Es wird ein kleines Schlüsselsymbol daneben haben, das anzeigt, dass der private Schlüssel verfügbar ist.
- Merken Sie sich den "Ausgestellt für" (Subject Name) Ihres Zertifikats. Dies ist der Name, der im Zertifikat steht, z.B. "Ihre Firma GmbH". Alternativ können Sie auch den SHA1-Fingerabdruck (Thumbprint) des Zertifikats verwenden, den Sie in den "Details" des Zertifikats finden (ohne Leerzeichen).
- Der CMD-Befehl für Token-basiertes Signieren:
Der Befehl unterscheidet sich von der .pfx-Variante, da er das Zertifikat über den Zertifikatsspeicher anspricht:
DOS
"C:\Pfad\zu\Ihrer\signtool.exe" sign /s My /n "Ihr Zertifikatsname hier" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\Pfad\zu\Ihrer\DateiDieSigniertWerdenSoll.exe"<br>
Wichtige Änderungen und Erläuterungen:
- /s My: Dieser Parameter weist signtool.exe an, im "Persönlich" (My)-Zertifikatsspeicher des aktuellen Benutzers nach dem Zertifikat zu suchen.
- /n "Ihr Zertifikatsname hier": Ersetzen Sie dies durch den genauen "Ausgestellt für"-Namen (Subject Name) Ihres Code Signing Zertifikats aus dem certmgr.msc. Achten Sie auf korrekte Groß-/Kleinschreibung und Leerzeichen.
- Alternativ (wenn der Name nicht eindeutig ist oder Sie den Thumbprint bevorzugen):
Wenn Sie den SHA1-Fingerabdruck (Thumbprint) verwenden möchten (ohne Leerzeichen):
DOS
"C:\Pfad\zu\Ihrer\signtool.exe" sign /s My /sha1 <THUMBPRINT_OHNE_LEERZEICHEN> /tr http://timestamp.digicert.com /td sha256 /fd sha256 "C:\Pfad\zu\Ihrer\DateiDieSigniertWerdenSoll.exe"<br>
Ersetzen Sie <THUMBPRINT_OHNE_LEERZEICHEN> durch den tatsächlichen SHA1-Hash. - Alle anderen Parameter (/tr, /td, /fd, der Pfad zu signtool.exe und der Pfad zur zu signierenden Datei) bleiben gleich wie in der vorherigen Antwort.
- PIN-Eingabe:
Sobald Sie den Befehl ausführen, wird in der Regel ein Pop-up-Fenster von SafeNet erscheinen, das Sie zur Eingabe Ihrer Token-PIN auffordert. Erst nach korrekter PIN-Eingabe kann die Signatur erfolgen.
- Token einstecken, SafeNet Client läuft.
- certmgr.msc öffnen, um den genauen Namen ("Ausgestellt für") oder den SHA1-Fingerabdruck des Zertifikats zu identifizieren.
- Eingabeaufforderung (CMD) als Administrator öffnen.
- Den angepassten signtool-Befehl ausführen.
- Auf die PIN-Abfrage des SafeNet Clients achten und PIN eingeben.
Zu Ihrer Frage bezüglich DigiCertUtil und anderen Verkäufern:
Sie haben DigiCertUtil erwähnt. Dieses Tool ist, wie der Name andeutet, spezifisch für DigiCert-Zertifikate und ihre Hardware-Token. Wenn Sie Ihr Zertifikat von SSLmarket gekauft haben und es von einer anderen Zertifizierungsstelle (CA) stammt (z.B. Sectigo, GlobalSign, Certum etc.), dann wird DigiCertUtil nicht funktionieren, da es nicht für Zertifikate anderer CAs konzipiert ist.Die schlechte Nachricht (aus Ihrer Sicht): Es ist extrem unwahrscheinlich, dass Sie heute noch einen seriösen Verkäufer für OV Code Signing Zertifikate finden, der Ihnen eine .pfx-Datei ohne Hardware-Token zur Verfügung stellt und damit die Nutzung von DigiCertUtil im alten Sinne ermöglicht.
- Der Grund: Die Anforderungen des CA/Browser Forums (eine Industriegruppe, die Standards für die Ausstellung von Zertifikaten festlegt) haben sich geändert. Seit etwa 2023 ist es für die Ausstellung von OV und EV Code Signing Zertifikaten zwingend vorgeschrieben, dass der private Schlüssel auf einem Hardware-Token oder einem HSM (Hardware Security Module) gespeichert wird, das den FIPS 140-2 Level 2 Standard erfüllt. Dies soll die Sicherheit der Schlüssel erhöhen und Missbrauch verhindern.
- Keine .pfx-Dateien mehr (im einfachen Sinne): Dies bedeutet, dass die CA den privaten Schlüssel direkt auf das Token injiziert, und ein einfacher Export als .pfx-Datei mit dem privaten Schlüssel ist in der Regel nicht mehr möglich oder nur unter sehr strengen, sicheren Bedingungen erlaubt, die selten die einfache Dateifreigabe für den signtool /f Befehl zulassen würden.
Mttlerweile habe ich Ihre Anleitung befolgt und es hat - funktioniert!! Ohne die passende Kommandozeile geht es eben nicht, aber die habe ich ja jetzt. Allerbesten Dank für Ihre super gute Hilfe!!
edit: Das Verfahren von TheCadillacMan hatte ich zunächst übersehen und habe ich daher leider erst jetzt getestet. Funktioniert ebenfalls super - also auch dafür vielen Dank!!
edit: Das Verfahren von TheCadillacMan hatte ich zunächst übersehen und habe ich daher leider erst jetzt getestet. Funktioniert ebenfalls super - also auch dafür vielen Dank!!
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 1
- Aufrufe
- 784
- Antworten
- 41
- Aufrufe
- 7.496
L
- Antworten
- 1
- Aufrufe
- 974