KeyLocker ist ein mächtiges Werkzeug zum Code-Signieren, das es ermöglicht, Ihr Code-Signing-Zertifikat in der Cloud zu speichern und seinen Hash sicher aus der Ferne zu signieren. Die anfängliche Einrichtung hat jedoch einige Tücken, bei denen dieser Artikel hilft.
Ein entscheidender Schritt für das Funktionieren von KeyLocker auf Ihrem System ist die richtige Einrichtung der Variablen. Diese bestimmen nicht nur den Pfad zu den Signierwerkzeugen, sondern enthalten auch Authentifizierungsdaten. Sie können diese entweder für eine Sitzung oder dauerhaft einrichten.
Variablen können auf verschiedene Weisen im System eingerichtet werden. Neben einer separaten Datei und Variablen können sie auch im Windows Credential Manager gespeichert werden. Wenn Sie über die GUI signieren möchten, können sie in dem Tool Click-to-sign eingestellt werden, das Sie in Ihrem KeyLocker-Konto finden (die Variablen würden jedoch nicht auf Systemebene funktionieren).
Die Einrichtung einer Variable in Windows ist einfach über die Befehlszeile möglich. Starten Sie cmd und geben Sie setx VARIABEL=WERT. Achtung - setx arbeitet mit Benutzer-, nicht mit Systemvariablen.
Für die korrekte Funktion von KeyLocker müssen Client-Authentifizierungsvariablen + der Standort der Signaturwerkzeuge und DigiCert-Bibliotheken eingerichtet werden.
Einrichtung der Authentifizierung
SM_CLIENT_CERT_FILE - der Pfad zum Authentifizierungszertifikat mit der Endung p12, das Sie aus dem DigiCert ONE-Kompass heruntergeladen haben
SM_HOST - die Host-Adresse von DigiCert ONE, das ist https://clientauth.one.digicert.com
Diese beiden Variablen sind nicht geheim, da das Zertifikat durch ein Passwort geschützt ist. Sie können ohne Bedenken im System eingerichtet werden. Die folgenden zwei Variablen sind geheim, und es wird empfohlen, sie nicht im System einzurichten, wenn darauf mehrere Benutzer Zugriff haben. Es ist besser, sie im Windows-Passwortmanager zu speichern. Weitere Informationen über die Variableneinrichtung für Windows finden Sie im Artikel Credential setup for Windows.
SM_API_KEY - der API-Schlüssel, den Sie in der DigiCert ONE-Schnittstelle generiert haben
SM_CLIENT_CERT_PASSWORD - das Passwort für das Authentifizierungszertifikat in P12, das einmalig im DC1-Assistenten angezeigt wurde
Einrichtung des Pfades für Signierwerkzeuge
Das Hinzufügen eines Wertes zur PATH-Variable erfolgt über den Befehl setx PATH "path;%PATH%". Dieser Befehl fügt dem aktuellen Benutzerwert der PATH-Variable einen neuen Wert hinzu und speichert ihn dauerhaft. Für das korrekte Funktionieren von KeyLocker ist es erforderlich, mindestens zwei zu setzen:
Der Pfad zum Windows SDK und signtool
Der Pfad zu den DigiCert Keylocker Tools
Finden Sie den gültigen Pfad zum Windows SDK (der Pfad verwendet die von Ihnen installierte Versionsnummer). Darüber hinaus benötigen Sie die DigiCert Keylocker Tools, die Sie von DigiCert ONE heruntergeladen und installiert haben; sie befinden sich in C:\Program Files\DigiCert\DigiCert Keylocker Tools.
Wir fügen beide Variablen gleichzeitig über CMD hinzu, sonst wird eine die andere überschreiben:
Systemvariablen können auch über das Windows-GUI gesetzt werden; über CMD ist es schneller, aber Werte werden bei mehrfachem Eintrag überschrieben. Es ist auch möglich, PowerShell zu verwenden.
Wie man die Variable PATH manuell in Windows anpasst
Um sicherzustellen, dass die Werte erhalten bleiben, können Sie PATH manuell anpassen:
Öffnen Sie Systemsteuerung → System → Erweiterte Systemeinstellungen.
Klicken Sie auf Umgebungsvariablen.
Suchen Sie PATH (in Systemvariablen oder Benutzervariablen).
Klicken Sie auf Bearbeiten, fügen Sie die individuellen Pfade hinzu und speichern Sie.
Hinzufügen von Variablen über das Windows-GUI
Wie man die Variable PATH mit PowerShell hinzufügt
Um den Pfad dauerhaft zur PATH-Variable mit PowerShell hinzuzufügen, gehen Sie wie folgt vor:
Öffnen Sie PowerShell als Administrator (klicken Sie mit der rechten Maustaste auf Start → Windows PowerShell (Admin)).
Zuerst ermitteln Sie den aktuellen Wert der "PATH"-Variable:
Nachdem Sie die Befehle ausgeführt haben, starten Sie die Eingabeaufforderung oder den Computer neu, damit die Änderungen wirksam werden.
Hinweis: Wenn Sie die systemweite "PATH"-Variable ändern möchten (gültig für alle Benutzer), ersetzen Sie "User" durch "Machine" im Befehl.
Achtung: Starten Sie die Eingabeaufforderung nach dem Setzen der Variablen über CMD neu, damit die Änderungen wirksam werden!
Überprüfung des Variablenwerts in cmd: echo %VARIABEL% Zum Beispiel "echo %PATH%". Dann zeigt cmd ihren Wert an.
Überprüfung der richtigen Einrichtung
Die KeyLocker-Tools enthalten das Dienstprogramm smctl, das zum Signieren verwendet werden kann, aber auch zur Basisdiagnose dient. Der folgende Befehl überprüft, ob alles auf der Station richtig eingerichtet ist und smctl sich mit der DigiCert-Cloud verbinden kann:
smctl healthcheck
Im Bericht sehen Sie die Bestätigung, ob Sie sich mit KeyLocker verbunden haben (die Authentifizierung funktioniert) und ob smctl die Anwesenheit der Signaturwerkzeuge wie signtool erkennt. Beispiel:
smctl healthcheck
--------- Account Settings ---------
Teams: Disabled
Threat detection: Enabled
Static Binary Analysis: Enabled
Software Composition Analysis: Disabled
--------- User credentials ---------
Status: Connected
Username: XXXX-keylocker
Accounts: XXXX-1699076
Authentication: 2FA
Environment: Prod
Credentials:
Host: https://clientauth.one.digicert.com
API key: 010897bf735bbc57d48270cd3d_50dxxxxx...e4 (Pulled from environment variable)
Client certificate file path: C:\Users\xy\Documents\keylocker\Certificate_pkcs12.p12
Client certificate password: ytf_xxxxxx0F (Pulled from environment variable)
API keys:
Name: xy (expires on Mon, 31 Dec 2029 23:59:59 UTC)
Client certificates:
Name: xy (expires on Mon, 31 Dec 2029 23:59:59 UTC)
Privileges:
Can sign: Yes
Can approve offline release: No
Can revoke certificate: Yes
Can scan: No
--------- Signing tools ---------
Signtool 32 bit:
Mapped: No
Signtool:
Mapped: Yes
Path: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\signtool.exe
Mage:
Mapped: No
Nuget:
Mapped: No
Jarsigner:
Mapped: No
Apksigner:
Mapped: No
Wenn es ein Problem mit der Authentifizierung gibt, überprüfen Sie, ob Sie die richtigen Werte gesetzt haben, die Sie im KeyLocker-Assistenten im DigiCert ONE-Interface erhalten haben. Wenn Sie Zweifel haben, können Sie den Assistenten zurücksetzen und neue credentials erstellen.
Sie könnten auch darauf stoßen, dass smctl signtool oder andere Signierwerkzeuge nicht erkennt. Dies bedeutet, dass es notwendig ist, ihren Standort zur Benutzer- oder System-PATH-Variable hinzuzufügen. Siehe oben im Abschnitt über Variablen.
MMC und Überprüfung der Zertifikatspräsenz
Wenn Sie unter Windows arbeiten, schauen Sie in den Zertifikats-Manager, den Sie durch den Befehl certmgr.msc starten. Wenn die Synchronisation mit KeyLocker erfolgreich erfolgt, sehen Sie ein Zertifikat mit einem Privatenschlüssel-Flag im Certificate Store. Das bedeutet jedoch nicht, dass es dort tatsächlich mit dem Privatenschlüssel ist - das Zertifikat mit dem Privatenschlüssel ist weiterhin in der Cloud gespeichert.
Ist das Zertifikat nicht vorhanden, starten Sie die Synchronisation.
smctl windows certsync
Bei erfolgreicher Synchronisation sehen Sie eine Bestätigung:
Syncing certificate for alias: key_1236506290, ID: ac793b6d-cac4-4be4-b145-003d4d1d63db and SHA1 Fingerprint: 54d0c7a2d93ae4d5fccb41d97c51a8ab3581c72c
Probleme beim Signieren
Wenn Sie Probleme beim Signieren haben, versuchen Sie, von den einfachsten zu den komplexeren Ansätzen zu gehen. Der einfachste Weg ist das Signieren mit dem Dienstprogramm smctl von DigiCert, das als Overlay zu Signierwerkzeugen wie signtool oder jarsigner dienen kann. Das ist die am wenigsten konfliktreiche Methode und benötigt keine Parameter. Verwenden Sie zur Problembehebung keine Zeitstempel oder andere Optionen.
Auf das Zertifikat kann über den Parameter "keypair-alias" oder "fingerprint" verwiesen werden; diese Informationen zum Zertifikat finden Sie beispielsweise mit dem Befehl smctl windows certsync.
Nach dem Signieren können Sie die Signatur überprüfen:
smctl sign verify --input <path to signed file or folder>
Nach erfolgreicher Signatur mit smctl können Sie mit einem anderen Tool wie signtool signieren. Auch das sollte funktionieren. Lassen Sie die Auswahl der Zertifikate automatisch und fügen Sie nach und nach weitere Parameter hinzu.
Sobald es erfolgreich nach Ihren Vorstellungen funktioniert, können Sie das Signieren beispielsweise mit Visual Studio oder in einer anderen Entwicklungsumgebung ausprobieren.
Wo man Logdateien findet
Wenn alles Obige fehlschlägt und das Signieren nicht funktioniert, schauen Sie in die Protokolle von smctl und anderen DigiCert-Tools. Wenn Sie die Protokolle bei der Problemlösung mit unserem Support verwenden, beschleunigt dies sicherlich die Lösung des Problems.
Die Logdatei des Dienstprogramms smctl finden Sie in der Datei smctl.log, die im Ordner /.signingmanager/logs im jeweiligen Benutzerprofil gespeichert ist. Versuchen Sie, in cmd echo %USERPROFILE%/.signingmanager/logs einzugeben, um den vollständigen Ordnerstandort zu sehen.
Wir danken Ihnen für Ihr Feedback zu diesem Artikel.
Es tut uns leid, dass Sie hier für Ihren Bedarf nichts Passendes gefunden haben.
Helfen Sie uns, diesen Artikel zu verbessern. Schreiben Sie uns bitte, was Sie hier erwartet und nicht erfahren haben.
Sehr geehrter Kunde,
mit dem Klick auf "ICH STIMME ZU" geben Sie uns und unseren Partnern Ihre Zustimmung zu der Nutzung von Cookies für notwendige, analytische und Marketingzwecke auf diesem Gerät. In der Einstellung können Sie selbst bestimmen, welche Cookies bearbeitet werden können und welche abgelehnt werden sollen. Notwendige Cookies werden immer gespeichert, um die Funktionalität der Webseite aufrechtzuerhalten.
In diesem Fenster können Sie Kategorien von Cookies im Einklang mit eigenen Präferenzen auswählen.
Diese Cookies sorgen für den fehlerlosen Betrieb unserer Webseiten. Sie ermöglichen zum Beispiel den Dienst in die Bestellung einzufügen, die Daten mit Rücksicht auf die Sicherheit des Webs zu speichern, sich einzuloggen usw. Die notwendigen Cookies können nicht deaktiviert werden, weil dies die Funktionalität der Webseite verletzen würde.
Dank den Präferenz-Cookies kann sich die Webseite Verschiedenes merken: Sich ändernde Informationen, wie sich die Webseite verhält oder wie sie aussieht. Es handelt sich zum Beispiel um die bevorzugte Sprache oder um die Region, in welcher Sie sich befinden.
Dank Tools wie Google Analytics können wir feststellen, welche Webseiten Sie nutzen und aus welchen Quellen und Technologien. Von diesen Daten ausgehend können wir unser Web fortlaufend optimieren, damit es für Sie möglichst benutzerfreundlich wird. Alle Daten werden anonymisiert, konkrete Nutzer können wir deshalb nicht identifizieren.
Zusammen mit Tools von Drittanbietern können wir in Partnernetzwerken Werbungen nach Ihrer Präferenz anzeigen. Sollten Sie diesem nicht zustimmen, ist höchstwahrscheinlich, dass Ihre Interessen und Präferenzen nicht berücksichtigt werden und die Werbung wird Ihnen flächenhaft angezeigt. Alle Profile Ihrer Interessen sind pseudoanonymisiert, deshalb kann Ihre Person nicht identifiziert werden.
Es tut uns leid, dass Sie hier für Ihren Bedarf nichts Passendes gefunden haben.
Helfen Sie uns, diesen Artikel zu verbessern. Schreiben Sie uns bitte, was Sie hier erwartet und nicht erfahren haben.