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 SHA-1-Fingerabdruck des Zertifikats an, das für die Suche nach dem Zertifikat in einem lokalen Zertifikatspeicher verwendet wird.

  • --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] und diag[nostic]. Der Standardwert ist minimal. 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