Referenz zu Sign CLI für VSIX-Pakete
sign
- Dotnet-Tool zum Signieren von Dateien und Containern mit PFX-, CER- oder P7B-Zertifikaten auf einem Datenträger oder von Windows Certificate Manager (WCM), Kryptografiedienstanbietern (CSP) oder Azure Key Vault.
Wichtig
Sign CLI unterstützt nur SHA-256
SHA-384
und SHA-512
als gültige Fingerabdruckalgorithmen. Sie können PowerShell verwenden, um Fingerabdrücke mithilfe von Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize
zu erhalten.
Wichtig
Sign CLI unterstützt RSA
nur Algorithmen, weshalb die Verwendung ECDSA
zum Generieren ihres Fingerabdrucks während der Installation die Signaturüberprüfung fehlschlägt. Dies blockiert die Installation nicht, aber während der Installation wird eine Warnung "Ungültige Signatur" unter dem VSIX Installer-Fenster angezeigt.
Übersicht
sign code certificate-store [<PATH(s)>]
[-cf|--certificate-file <PATH>]
[-p|--password <PASSWORD>]
[-cfp|--certificate-fingerprint <SHA>]
[-csp|--crypto-service-provider <CSPNAME>]
[-k|--key-container <HASHALGORITHM>]
[-km|--use-machine-key-container]
[-d|--description <DESCRIPTION>]
[-u|--descriptionUrl <URL>]
[-fd|--file-digest <DIGEST>]
[-t|--timestamp-url <URL>]
[-tr|--timestamp-rfc3161 <URL>]
[-td|--timestamp-digest <DIGEST>]
[-o|--output <PATH>]
[-b|--base-directory <wORKINGDIRECTORY>]
[-f|--force]
[-m|--max-concurrency <MAXCONCURRENCY>]
[-fl|--filelist <FILELISTPATH>]
[-i]|--interactive
sign code certificate-store -h|--help
Beschreibung
Sign CLI
ist ein Dotnet-Tool, das Dateien und Container rekursiv mit einem Zertifikat und privaten signiert. Das Zertifikat und der private Schlüssel können entweder aus einer Datei (PFX, P7B, CER) oder aus einem Zertifikat abgerufen werden, das in einem Zertifikatspeicher installiert ist, indem ein SHA-256
, SHA-384
oder SHA-512
ein Fingerabdruck bereitgestellt wird. Auf USB-Schlüssel kann über einen vom Hersteller implementierten Kryptografiedienstanbieter (Cryptographic Service Provider , CSP) zugegriffen werden und über den Zertifikatspeicher darauf zugegriffen werden.
Installation
Installieren der Sign-CLI global mit dotnet tool install sign --prerelease --global
Offlineinstallation von Sign CLI
Für isolierte Umgebungen können Sie ein Sign CLI NuGet-Paket herunterladen und mithilfe von:
dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>
Argumente
VSIX-paths(s)
Gibt die Pfade zum zu signierten VSIX-Paket an.
Optionen
-cf|--certificate-file <PATH>
PFX-, P7B- oder CER-Datei, die ein Zertifikat und potenziell einen privaten Schlüssel enthält.
-p|--password <PASSWORD>
Optionales Kennwort für die Zertifikatdatei.
-cfp|--certificate-fingerprint <SHA>
SHA-256, SHA-384 oder SHA-512-Fingerabdruck, der zum Identifizieren eines Zertifikats vor der Signatur verwendet wird.
-csp|--crypto-service-provider <CSP NAME>
Kryptografiedienstanbieter, der einen privaten Schlüssel enthält.
Hinweis
Sie können alle verfügbaren CSPs anzeigen, indem Sie ausgeführt
certutil -csplist
werden, wobei ältere CSPs einen "Anbietertyp" und CNG-Anbieter in der Regel "Key Storage Provider" in ihren Namen angeben.certutil -csptest "<provider name>"
enthält weitere Informationen zu bestimmten Anbietern.-k|--key-container <CONTAINER NAME>]
Name des Privaten Schlüsselcontainers.
Hinweis
Sie finden alle schlüssel, die in einem CSP gespeichert sind, indem Sie ausführen
certutil -csp <Provider Name> -key
.-km|--use-machine-key-container]
Verwenden Sie einen privaten Schlüsselcontainer auf Computerebene anstelle des Standardcontainers auf Benutzerebene.
-d|--description <DESCRIPTION>
Beschreibung des Signaturzertifikats.
-u|--descriptionUrl <URL>
Beschreibungs-URL des Signaturzertifikats.
-fd | --file-digest <DIGEST>
Digestalgorithmus zum Hashen der Datei mit.
-t|--timestamp-url <URL>
RFC 3161-Zeitstempelserver-URL. [Standard: http://timestamp.acs.microsoft.com/]
-tr | --timestamp-rfc3161 <URL>
Gibt die URL des RFC 3161-Zeitstempelservers an.
-td|--timestamp-digest <DIGEST>
Wird verwendet, um
-tr
einen Digestalgorithmus anzufordern, der vom RFC 3161-Zeitstempelserver verwendet wird.-o|--output <PATH>
Die Ausgabedatei oder der Ordner, wenn mehrere Dateien angegeben werden. Wenn diese Angabe weggelassen wird, wird die Eingabe überschrieben.
-b|--base-directory <PATH>
Basisverzeichnis für Dateien zum Überschreiben des Arbeitsverzeichnisses.
--f|--force
Überschreibt eine Signatur, falls vorhanden.
-m|--max-concurrency <MAXCONCURRENCY>
Maximale Parallelität (Standard ist 4)
-fl | --filelist <PATH>
Pfad zu Datei mit Pfaden von Dateien zum Signieren oder Ausschließen der Signatur innerhalb des Containers.
-?|-h|--help
Druckt eine Beschreibung der Verwendung des Befehls.
-i|--interactive
Aufforderung zur Eingabe des Benutzers, die in einigen Szenarien erforderlich ist, z. B. bei Verwendung eines vom Benutzer geschützten Schlüssels, bei dem ein Kennwort vom Benutzer eingegeben werden muss.
Beispiele
Signieren Sie contoso.vsix mit einem Zertifikat, das in den Benutzerzertifikatspeicher importiert wurde:
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Signieren Sie contoso.vsix mit zertifikat cert.pfx (nicht kennwortgeschützt ) mit einem SHA-512-Fingerabdruck:
sign code certificate-store contoso.vsix -cfp A87A6F...894559B981 -cfpa sha512 -cf D:\certificates\cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Signieren Sie contoso.vsix mit zertifikat cert.pfx (kennwortgeschützter):
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Signieren Sie mehrere VSIX-Pakete – contoso.vsix und alle VSIX-Dateien im Verzeichnis, das mit zertifikat cert.pfx angegeben ist (nicht kennwortgeschützt):
sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Signieren Sie contoso.vsix mit einem Zertifikat, das in einem sicheren USB-Laufwerk gespeichert ist.
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Signieren Sie contoso.vsix mit einem Zertifikat, das in einem sicheren USB-Laufwerk gespeichert ist, und greifen Sie über den Computerzertifikatspeicher (-km-Option) zu.
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -km -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Hinweis
Wenn
-k
die Option nicht bereitgestellt wird, überprüft das Tool alle Container im bereitgestellten CSP auf ein übereinstimmende SHA-Fingerabdruckzertifikat.Signieren Sie contoso.vsix mit einem Zertifikat, das in einem sicheren USB-Laufwerk gespeichert ist, das den Dateidigestalgorithmus (-fd), den Zeitstempelserver (-t) und einen benutzerdefinierten Ausgabepfad (-o) für den signierten VSIX angibt.
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com" -t "http://timestamp.acs.microsoft.com/" -fd sha256 -o "ContosoSigned.vsix"