Teilen über


dotnet nuget sign (signieren)

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

Dieser Befehl erfordert einen Zertifikatstammspeicher, der sowohl für die Codesignatur als auch für die Zeitstempel gültig ist. Außerdem wird dieser Befehl für einige Kombinationen von 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-Zertifikatfingerabdruck verwendet wird, da er nicht mehr als sicher angesehen wird. In .NET 10 und höheren Versionen wird die Warnung auf einen Fehler erhöht. Nur SHA-2-Familienabdrücke (SHA-256, SHA-384 und SHA-512) werden unterstützt.

    Alle pre-.NET 9-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 wird keine Aufforderung zur Eingabe eines Kennworts angezeigt.

  • --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
    
  • Sign foo.nupkg with certificate (password protected) matches with the specified SHA-256 fingerabdruck in the default certificate store (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --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
    
  • Sign foo.nupkg with certificate (password protected) matches with the specified SHA-256 fingerabdruck in the certificate store CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --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