dotnet nuget sign
Dieser Artikel gilt für: ✔️ .NET 6 SDK und höhere Versionen
Name
dotnet nuget sign
: Signiert alle NuGet-Pakete, die mit dem ersten Argument übereinstimmen, mit einem Zertifikat.
Übersicht
dotnet nuget sign [<package-path(s)>]
[--certificate-path <PATH>]
[--certificate-store-name <STORENAME>]
[--certificate-store-location <STORELOCATION>]
[--certificate-subject-name <SUBJECTNAME>]
[--certificate-fingerprint <FINGERPRINT>]
[--certificate-password <PASSWORD>]
[--hash-algorithm <HASHALGORITHM>]
[-o|--output <OUTPUT DIRECTORY>]
[--overwrite]
[--timestamp-hash-algorithm <HASHALGORITHM>]
[--timestamper <TIMESTAMPINGSERVER>]
[-v|--verbosity <LEVEL>]
dotnet nuget sign -h|--help
Beschreibung
Mit dem Befehl dotnet nuget sign
werden alle Pakete, die mit dem ersten Argument übereinstimmen, mit einem Zertifikat signiert. Das Zertifikat mit dem privaten Schlüssel kann aus einer Datei oder einem in einem Zertifikatspeicher installierten Zertifikat durch Bereitstellen eines Antragstellernamens oder eines SHA-1-Fingerabdrucks abgerufen werden.
Hinweis
Für diesen Befehl ist ein Zertifikatstammspeicher erforderlich, der sowohl für das Codesignieren als auch das Erstellen von Zeitstempeln gültig ist. Außerdem wird dieser Befehl für einige Kombinationen aus Betriebssystem und .NET SDK möglicherweise nicht unterstützt. Weitere Informationen finden Sie unter Überprüfung von signierten NuGet-Paketen.
Argumente
package-path(s)
Gibt den Dateipfad zum Paket bzw. zu den Paketen an, die signiert werden sollen. Zur Signierung mehrerer Pakete können mehrere Argumente übergeben werden.
Optionen
--certificate-path <PATH>
Gibt den Dateipfad zum Zertifikat an, das beim Signieren des Pakets verwendet werden soll.
Hinweis
Diese Option kann derzeit nur für
PKCS12 (PFX)
-Dateien verwendet werden, die den privaten Schlüssel des Zertifikats enthalten.--certificate-store-name <STORENAME>
Gibt den Namen des X.509-Zertifikatspeichers an, der für die Suche nach dem Zertifikat verwendet werden soll. Der Standardwert lautet "My" (X.509-Zertifikatspeicher für persönliche Zertifikate). Verwenden Sie diese Option, wenn Sie das Zertifikat über die Optionen
--certificate-subject-name
oder--certificate-fingerprint
angeben möchten.--certificate-store-location <STORELOCATION>
Gibt den Namen des X.509-Zertifikatspeichers an, der für die Suche nach dem Zertifikat verwendet werden soll. Der Standardwert lautet "CurrentUser" (vom aktuellen Benutzer verwendeter X.509-Zertifikatspeicher). Verwenden Sie diese Option, wenn Sie das Zertifikat über die Optionen
--certificate-subject-name
oder--certificate-fingerprint
angeben möchten.--certificate-subject-name <SUBJECTNAME>
Gibt den Antragstellernamen des Zertifikats an, das für die Suche nach dem Zertifikat in einem lokalen Zertifikatspeicher verwendet wird. Bei der Suche handelt es sich um einen Zeichenfolgenvergleich mit dem angegebenen Wert ohne Berücksichtigung der Groß-/Kleinschreibung, bei dem alle Zertifikate mit dem Antragstellernamen, der diese Zeichenfolge enthält, unabhängig von anderen Antragstellerwerten angezeigt werden. Der Zertifikatspeicher kann mit den Optionen
--certificate-store-name
und--certificate-store-location
angegeben werden.Hinweis
Diese Option wird derzeit nur für ein einzelnes übereinstimmendes Zertifikat im Ergebnis unterstützt. Enthält das Ergebnis mehrere oder gar kein übereinstimmendes Zertifikat, tritt ein Fehler auf.
--certificate-fingerprint <FINGERPRINT>
Gibt den Fingerabdruck des Zertifikats an, das zum Durchsuchen eines lokalen Zertifikatspeichers für das Zertifikat verwendet wird.
Ab .NET 9 kann diese Option verwendet werden, um den SHA-1-, SHA-256-, SHA-384- oder SHA-512-Fingerabdruck des Zertifikats anzugeben. Eine Warnung wird jedoch ausgelöst,
NU3043
wenn ein SHA-1-Zertifikatabdruck verwendet wird, da er nicht mehr als sicher eingestuft wird.Alle vorherigen Versionen des .NET SDK akzeptieren weiterhin nur sha-1-Zertifikatabdrücke.
--certificate-password <PASSWORD>
Gibt bei Bedarf das Zertifikatkennwort an. Wird bei einem kennwortgeschützten Zertifikat kein Kennwort angegeben, tritt ein Fehler auf.
Hinweis
Der Befehl
sign
kann nur im nicht interaktiven Modus verwendet werden. Zur Laufzeit werden Sie nicht zur Eingabe eines Kennworts aufgefordert.--hash-algorithm <HASHALGORITHM>
Gibt den Hashalgorithmus an, der zum Signieren des Pakets verwendet werden soll. Der Standardwert ist SHA256. Mögliche Werte sind SHA256, SHA384 und SHA512.
-o|--output
Gibt das Verzeichnis an, in dem das signierte Paket gespeichert werden soll. Wird diese Option nicht angegeben, wird das Originalpaket standardmäßig durch das signierte Paket überschrieben.
--overwrite
Gibt an, dass die aktuelle Signatur überschrieben werden soll. Verfügt das Paket bereits über eine Signatur, tritt hier standardmäßig ein Fehler auf.
--timestamp-hash-algorithm <HASHALGORITHM>
Gibt den Hashalgorithmus an, der vom RFC 3161-Zeitstempelserver verwendet werden soll. Der Standardwert ist SHA256.
--timestamper <TIMESTAMPINGSERVER>
URL zu einem RFC 3161-Zeitstempelserver.
-v|--verbosity <LEVEL>
Legt den Ausführlichkeitsgrad für den Befehl fest. Zulässige Werte sind
q[uiet]
,m[inimal]
,n[ormal]
,d[etailed]
unddiag[nostic]
. Der Standardwert istminimal
. Weitere Informationen finden Sie unter LoggerVerbosity.
-?|-h|--help
Gibt eine Beschreibung zur Verwendung des Befehls aus.
Beispiele
Signieren von foo.nupkg mit dem Zertifikat cert.pfx (nicht kennwortgeschützt):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx
Signieren von foo.nupkg mit dem Zertifikat cert.pfx (kennwortgeschützt):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
Signieren von foo.nupkg mit dem Zertifikat (kennwortgeschützt), das mit dem angegebenen SHA-1-Fingerabdruck im Standardzertifikatspeicher („CurrentUser\My“) übereinstimmt:
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
Signieren von foo.nupkg mit dem Zertifikat (kennwortgeschützt), das mit dem angegebenen Antragstellernamen "Test certificate for testing signing" im Standardzertifikatspeicher („CurrentUser\My“) übereinstimmt:
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
Signieren von foo.nupkg mit dem Zertifikat (kennwortgeschützt), das mit dem angegebenen SHA-1-Fingerabdruck im Zertifikatspeicher „CurrentUser\Root“ übereinstimmt:
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
Signieren mehrerer NuGet-Pakete: foo.nupkg und aller NUPKG-Dateien im angegebenen Verzeichnis mit dem Zertifikat cert.pfx (nicht kennwortgeschützt):
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
Signieren von foo.nupkg mit dem Zertifikat cert.pfx (kennwortgeschützt) sowie des Zeitstempels mit
http://timestamp.test
:dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
Signieren von foo.nupkg mit dem Zertifikat cert.pfx (nicht kennwortgeschützt) und Speichern des signierten Pakets im angegebenen Verzeichnis:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
Signieren von foo.nupkg mit dem Zertifikat cert.pfx (nicht kennwortgeschützt) und Überschreiben der aktuellen Signatur, wenn das Paket bereits signiert ist:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite