Diese Webseite enthält Anweisungen zur Verwendung von SSL.com OV or EV Codesignatur-Zertifikat mit SignTool von Microsoft und SSL.com SSL Manager.
Bei diesen Anweisungen wird davon ausgegangen, dass Ihr Codesignaturzertifikat installiert wurde oder dass Sie es auf einem Hardware-Token haben. Informationen zur cloudbasierten Codesignatur mit der eSigner-Plattform finden Sie im Übersichtsseite und dies Einschreibungsanleitung.
Denken Sie daran, dass es sich bei hardwarebasierten OV- und EV-Code-Signing-Zertifikaten um den privaten Schlüssel handelt existiert nur auf dem YubiKey FIPS USB-Token das wurde dir geschickt und das das Token muss beigefügt sein an den Computer, auf dem die Anwendung signiert wird. Windows-Benutzer mit YubiKey FIPS-Token sollten auch die . herunterladen und installieren YubiKey Smartcard-Minitreiber bevor Sie ihr Token verwenden.
Signieren einer ausführbaren Datei mit Yubikey
Installieren Windows SDK und SignTool
SignTool ist im Lieferumfang enthalten Windows 10-SDK. Nach der Installation befindet sich SignTool unter:
C: \ Programme (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe
Startseite Powershell
Starten Sie eine Powershell Befehlsfenster durch Suchen nach "Powershell" in der Startseite Menü und klicken Sie auf die Desktop-Anwendung.
Powershell ist eine Befehlszeilenschnittstelle zu den Kerndiensten von Windows. Sie können damit SignTool ausführen und Ihren Code signieren.
für Code Schließen Sie zum Signieren Ihren USB-Token an Ihren Computer an (falls Sie dies noch nicht getan haben). Wenn Sie eSigner verwenden, installieren Sie es eSigner Cloud Key-Adapter
Denken Sie daran, dass der private Schlüssel nur auf dem USB-Token vorhanden ist, der an Sie gesendet wurde Der Token muss angehängt sein an einen Computer, der zum Signieren der Anwendung verwendet wird. Dieser Schritt sollte übersprungen werden, wenn Sie ein OV-Codesignaturzertifikat verwenden.
Schild Ausführbar
Sie können eine ausführbare Datei signieren, indem Sie den folgenden Befehl im Powershell-Fenster ausführen. Wenn Sie die eSigner-Cloud-Signierung mit signtool.exe verwenden, stellen Sie sicher, dass Sie es installieren eSigner-CKA
. \ signtool.exe sign / fd sha256 / a "C: \ Pfad \ zu \ MyExecutable.exe"
- Der
/fd
Option wählt den Digest-Algorithmus aus, der beim Signieren verwendet werden soll. Windows 10 SDK-, HLK-, WDK- und ADK-Builds 20236 und höher erfordern, dass diese Option beim Signieren festgelegt wird. SHA256 wird aus Sicherheitsgründen gegenüber SHA1 empfohlen. - Der
/a
Die Option weist SignTool an, automatisch ein geeignetes Codesignaturzertifikat für Ihre ausführbare Datei zu finden. - Sie werden aufgefordert, die PIN Ihres USB-Tokens einzugeben. Wenn Sie Hilfe bei der Suche nach Ihrer PIN benötigen, lesen Sie bitte diese Anleitung.
Auswählen eines Signaturzertifikats
Geben Sie den Betreff an
Wenn Sie mehr als einen Code zum Signieren von USB-Token oder -Zertifikaten installiert haben, können Sie dies tun Geben Sie das Zertifikat an Sie möchten verwenden, indem Sie seine einschließen Subjekt Name über das /n
.
Den Betreffnamen Ihres Zertifikats finden Sie mit dem Zertifikatsverwaltungstool von Microsoft. Zertifikat. Öffnen Sie das Tool über das Startmenü und suchen Sie im Ordner „Persönlich“ unter „Zertifikate“ nach Ihrem Zertifikat, wie im Bild unten gezeigt. Der Betreffname ist das Feld „Ausgestellt an“ in certmgr.
Im obigen Bild lautet der Betreff des Zertifikats example
. Sie können diesen Wert in SignTool mit dem folgenden Befehl angeben.
. \ signtool.exe sign / fd sha256 / n "Beispiel" "C: \ Pfad \ zu \ MyExecutable.exe"
Geben Sie SHA1 Hash an
Wenn Sie mehrere Zertifikate mit demselben Betreff haben, können Sie auch den SHA1-Hash (oder „Fingerabdruck“) eines Zertifikats verwenden, um es zum Signieren auszuwählen. Ersetzen THUMBPRINT
im folgenden Befehl mit dem tatsächlichen SHA1-Hash Ihr Zertifikat. Sie finden diesen Wert, indem Sie die Zertifikatdetails in certmgr anzeigen und nach dem suchen Thumbprint
Feld (stellen Sie sicher, dass Leerzeichen aus dem Fingerabdruck entfernt werden, bevor Sie sie in Ihrem Befehl verwenden).
. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ path \ to \ MyExecutable.exe"
Verwenden Sie eine PKCS # 12 / PFX-Datei
Wenn Sie in einer PKCS # 12-Datei (auch als PFX- oder P12-Datei bezeichnet) ein Codesignaturzertifikat und einen privaten Schlüssel haben, können Sie die Datei und ihr Kennwort in der Befehlszeile angeben:
. \ signtool.exe sign / fd sha256 / f "C: \ Pfad \ zu \ MyCertificate.pfx" / p Passwort "C: \ Pfad \ zu \ MyExecutable.exe"
Zeitstempeln
Wenn Sie Ihren Code mit einem Zeitstempel versehen, kann er nach Ablauf Ihres Codesignaturzertifikats als vertrauenswürdig eingestuft werden. Wenn Sie eine hinzufügen möchten Zeitstempel In der signierten Binärdatei können Sie dies mit SignTools tun /tr
Option, auf die der Timestamp Digest-Algorithmus mit eingestellt werden sollte /td
. Der Befehl im folgenden Snippet enthält einen Zeitstempel von SSL.comZeitstempeldienst beim Signieren einer ausführbaren Datei.
. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ Pfad \ zu \ MyExecutable.exe"
/tr
Option (URL des RFC 3161-Zeitstempelservers angeben), nicht /t
(URL des Zeitstempelservers), die nicht mit dem Zeitstempelserver von SSL.com kompatibel ist./td
zu erhalten sollen folgen Sie den /tr
Möglichkeit. Wenn der Zeitstempel-Digest-Algorithmus vor dem Zeitstempel-Server angegeben wird, wird der Standard-SHA-1-Algorithmus verwendet. Windows 10 SDK-, HLK-, WDK- und ADK-Builds 20236 und höher erfordern die Verwendung von /tr
beim Zeitstempeln. Aus Sicherheitsgründen wird SHA256 gegenüber SHA1 empfohlen.Wenn Sie auf diesen Fehler stoßen:
The timestamp certificate does not meet a minimum public key length requirement
, sollten Sie sich an Ihren Softwareanbieter wenden, um Zeitstempel von ECDSA-Schlüsseln zuzulassen.Wenn Ihr Softwareanbieter die Verwendung des normalen Endpunkts nicht zulassen kann, können Sie diesen Legacy-Endpunkt verwenden
http://ts.ssl.com/legacy
um einen Zeitstempel von einer RSA-Zeitstempeleinheit zu erhalten.Andere Optionen
Weitere wichtige SignTool-Optionen sind:
/d
: Fügen Sie eine Beschreibung des signierten Codes hinzu. Beispielsweise,/d "test code"
./du
: Fügen Sie eine URL mit einer erweiterten Beschreibung des signierten Codes hinzu. Beispielsweise,/du https://your_website.tld/project/description
.
Verwenden Sie alle oben genannten Optionen (aber lassen Sie sie weg /a
, /sha1
, oder auch /f
weil wir den Betreff des Zertifikats mit angeben /n
Unsere Befehlszeile sieht folgendermaßen aus:
signtool.exe sign / n "Beispiel" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "Testcode" / du https: //Ihre_Website.tld/project/description "C: \ Pfad \ to \ MyExecutable.exe "
Überprüfen Sie die Unterschrift
Verwenden Sie diesen Befehl, um Ihren signierten Code zu überprüfen (beachten Sie, dass die /pa
Option muss im Befehl vorhanden sein):
. \ signtool.exe verify / pa "C: \ Pfad \ zu \ MyExecutable.exe"
Wenn Ihre Datei erfolgreich signiert wurde, sollte die folgende Ausgabe angezeigt werden:
Datei: C: \ Pfad \ zu \ MyExecutable.exe Indexalgorithmus Zeitstempel ==================================== ===== 0 sha256 RFC3161 Erfolgreich überprüft: C: \ path \ to \ MyExecutable.exe
Sie können auch überprüfen, ob eine Datei signiert wurde, indem Sie mit der rechten Maustaste auf das entsprechende Symbol klicken und auswählen Ferienhäuser aus dem Menü, dann wählen Sie die Digitale Signaturen Tab. Zeigen Sie Details zu einer Signatur an, indem Sie sie auswählen und auf klicken Details .
Hier sehen wir, dass die Datei eine gültige digitale Signatur enthält, die von SSL Corp am 28. Juni 2020 erstellt wurde.
Signieren einer ausführbaren Datei mit SSL Manager
Wenn Sie einen grafikbasierten Ansatz bevorzugen, können Sie diesen verwenden SSL.comInhouse-Software, SSL Manager, um Ihre Dateien zu signieren. Viele Kunden bevorzugen die Verwendung SSL Manager weil es den zusätzlichen Vorteil bietet, einen einfachen Zugriff auf alle Ihre Zertifikate in einer einheitlichen Oberfläche zu haben. Anweisungen zum Herunterladen und Installieren SSL ManagerBitte beziehen Sie sich auf unsere Installationsanleitung.
Um eine ausführbare Datei zu signieren, wählen Sie zunächst Codesignatur> Sign & Timestamp Code Package für SSL ManagerMenü.
Im Codesignaturformular können Sie die ausführbare Datei und das Codesignaturzertifikat (entweder aus einer Datei oder einem Zertifikatspeicher) sowie einen der verfügbaren Zeitstempelserver auswählen. Wenn Sie fertig sind, klicken Sie auf Schild , um Ihren Code zu unterschreiben. Sie werden aufgefordert, die PIN Ihres USB-Tokens einzugeben.
Neben der Codesignatur, SSL Manager bietet viele leistungsstarke Funktionen. Weitere Einzelheiten finden Sie unter SSL ManagerDokumentation, insbesondere das Code Signing Menü.
Code Signing mit einem Thales SafeNet (Gemalto) USB-Token
In diesem Abschnitt wird gezeigt, wie Code mit dem Codesignaturzertifikat von SSL.com, dem USB-Token von Thales SafeNet (Gemalto) und dem Safenet Authentication Client signiert wird.
Das Thales SafeNet-Token kann alle Arten von SSL.com-Codesignaturzertifikaten und deren private Schlüssel speichern. Dazu gehören Personal Identity-Codesignaturzertifikate, Organization Validation-Codesignaturzertifikate und Extended Validation-Codesignaturzertifikate.
SafeNet Authentication Client ist eine Middleware-Lösung, die das umfassende SafeNet-Portfolio an zertifikatsbasierten Authentifikatoren von Thales verwaltet. Dazu gehören eTokens, SafeNet IDPrime-Smartcards, SafeNet IDPrime Virtual und kombinierte PKI/FIDO-Geräte.
Anweisungen zum Ändern Ihres Codesignaturkennworts für Thales SafeNet (Gemalto)-Token oder zum Wiedererlangen des Zugriffs auf ein gesperrtes Token finden Sie in diesem SSL.com-Artikel: So ändern Sie Ihr Thales SafeNet/Gemalto-Token-Passwort
Voraussetzungen:
- Windows Development Kit auf Ihrem Computer installiert
- Auf Ihrem Computer ist der SafeNet Authentication Client installiert. Anweisungen finden Sie in diesem SSL.com-Handbuch: SafeNet-Authentifizierungsclient zum Herunterladen für Code Signing-Zertifikate
- Ein Thales SafeNet-Token mit einem vorinstallierten Codesignaturzertifikat von SSL.com. Das Thales SafeNet-Token muss mit den folgenden Schritten aktiviert werden:
- Suchen Sie die Seriennummer Ihres Thales-Tokens. Dies ist eine Reihe von Buchstaben und Zahlen, die auf der Oberfläche Ihres Tokens aufgedruckt ist.
- Melden Sie sich bei Ihrem SSL.com-Konto an.
- Klicken Sie auf die Bestellungen Registerkarte, gefolgt von der herunterladen Link Ihrer Zertifikatsbestellung, um die Details anzuzeigen. physische Token Aktivieren Sie Ihren Thales-Token, indem Sie seine Seriennummer in das dafür vorgesehene Feld eingeben. Nach der Aktivierung Ihres Thales-Tokens wird der physische Token Im Abschnitt „ Aktivierungs-PIN und dem Admin-PINdem „Vermischten Geschmack“. Seine Admin-PIN ist auch bekannt als die Token-Passwort und Sie werden beim Signieren Ihrer Datei aufgefordert, dies einzugeben.
Schritte zum Signieren von Code mit einem Thales SafeNet-Token
- verbinden Sie Ihren Thales SafeNet-Token für Ihren Computer.
- Öffnen Safenet-Authentifizierungsclient.
- Konfigurieren Sie den Befehl zum Signieren Ihres Codes:
signtool sign /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PFAD_DER_ZU_SIGNIERENDEN_DATEI"
Legende:
/fd sha256 Wählt den Digest-Algorithmus aus, der beim Signieren verwendet werden soll.
/tr http://ts.ssl.com gibt die Adresse des Zeitstempelservers an
/td sha256 gibt den Zeitstempel-Digest-Algorithmus an
/a weist SignTool an, automatisch ein geeignetes Codesignaturzertifikat für Ihre Datei zu finden.
signierbarer Dateipfad: Der Pfad Ihrer Datei sollte in doppelte Anführungszeichen eingeschlossen werden. Beachten Sie, dass der Name Ihrer signierbaren Datei im Pfad enthalten sein muss. Beispiel: /Testdatei.dll
Note: Bei einigen Benutzern kann dieser Fehler mit dem Sign-Befehl auftreten: „Signtool“ wird nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkanntDie Lösung für diesen Fehler besteht darin, den Text zu entfernen signtool aus dem Befehl und ersetzen Sie ihn durch den Pfad für signtool.exe. Der Pfad sollte in doppelte Anführungszeichen eingeschlossen werden.
„C:\Programme (x86)\Windows Kits\10\Ordner\Ordner\x86\signtool.exe“ sign /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a „C:\Benutzer\Admin\Dokumente\Testdateien\Testdatei.dll“
- Führen Sie Eingabeaufforderung als Administrator ein und platzieren Sie den Befehl sign. Drücken Sie anschließend Enter.
- Sie werden die Nachricht sehen Hinzufügen des zusätzlichen Stores abgeschlossen. Kurz danach, Sie werden aufgefordert, Ihre Token-Passwort. Wie in der Voraussetzungen: Das Token-Passwort ist das gleiche wie das Admin-PIN und dies kann über Ihre SSL.com-Zertifikatsbestellseite angezeigt werden. Klicken Sie auf die OK Schaltfläche, um die Codesignierung abzuschließen.
- Success! Ihre Datei ist nun signiert. Die Eingabeaufforderung benachrichtigt Sie über die erfolgreiche Signierung.
Optionen zum Signieren von Code
1. Geben Sie den Betreffnamen des Zertifikats an
Wenn Sie über mehrere USB-Token oder Zertifikate zum Signieren von Code verfügen, können Sie auswählen, welches spezifische Zertifikat verwendet werden soll, indem Sie dessen Betreffnamen über die Option /n integrieren.
Sie können den Betreffnamen Ihres Zertifikats anzeigen, indem Sie im SafeNet Authentication Client auf das Zahnradsymbol klicken, um eine erweiterte Ansicht zu erhalten. Klicken Sie anschließend auf den Pfeil für Benutzerzertifikate um alle im Token installierten Zertifikate anzuzeigenKopieren Sie den Namen des Zertifikats, das Sie verwenden möchten.
Der Signierbefehl mit dem /n
Option sieht wie folgt aus. Der Betreffname Ihres Zertifikats sollte in doppelte Anführungszeichen eingeschlossen werden.
„PFAD VON SIGNTOOL.EXE“ sign /tr http://ts.ssl.com/ /td sha256 /fd sha256 /n „BETREFFNAME DES ZERTIFIKATS“ „PFAD_DER_ZU_SIGNIERENDEN_DATEI“
2. Geben Sie den Zertifikatfingerabdruck an
Wenn Sie mehrere Zertifikate mit identischen Betreffnamen besitzen, können Sie eines anhand seines SHA1-Hashes, allgemein als „Fingerabdruck“ bezeichnet, unterscheiden und zum Signieren auswählen. Ersetzen Sie dazu DAUMENABDRUCK im folgenden Befehl durch den tatsächlichen SHA1-Hash Ihres Zertifikats.
Sie können den Fingerabdruckwert Ihres Zertifikats anzeigen, indem Sie im SafeNet Authentication Client auf das Zahnradsymbol klicken, um eine erweiterte Ansicht zu erhalten. Klicken Sie anschließend auf den Pfeil für Benutzerzertifikate. Doppelklicken Sie auf das Zertifikat, das Sie verwenden möchten. Klicken Sie auf das Details Scrollen Sie schließlich nach unten zum Daumenabdruck Feld.
Ersetzen Sie im Signierbefehl den Text DAUMENABDRUCK mit dem tatsächlichen Wert Ihres Zertifikatsfingerabdrucks.
„PFAD VON SIGNTOOL.EXE“ sign /tr http://ts.ssl.com/ /td sha256 /fd sha256 /SHA1 THUMBPRINT „PFAD_DER_ZU_SIGNIERENDEN_DATEI“
Überprüfen der Signatur
Sie können die angewendete digitale Signatur überprüfen, indem Sie mit der rechten Maustaste auf die signierte Datei klicken, um ihre Eigenschaften anzuzeigen.
- Klicken Sie auf die Digitale Signaturen Bewegen Sie die Maus über den Unterschriftenliste und klicken Sie auf den angezeigten Namen Ihres Zertifikats, um es hervorzuheben. Klicken Sie auf das Details Feld, um fortzufahren.
- Sie können den Namen des Zertifikats sehen, das zum Signieren der Datei verwendet wurde, sowie das Datum und die Uhrzeit der Signierung und des Zeitstempels.