Dela via


dotnet nuget-tecken

Den här artikeln gäller för: ✔️ .NET 6 SDK och senare versioner

Name

dotnet nuget sign – Signerar alla NuGet-paket som matchar det första argumentet med ett certifikat.

Sammanfattning

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

beskrivning

Kommandot dotnet nuget sign signerar alla paket som matchar det första argumentet med ett certifikat. Certifikatet med den privata nyckeln kan hämtas från en fil eller från ett certifikat som är installerat i ett certifikatarkiv genom att ange ett ämnesnamn eller ett SHA-1-fingeravtryck.

Kommentar

Det här kommandot kräver ett rotarkiv för certifikat som är giltigt för både kodsignering och tidsstämpling. Det här kommandot kanske inte heller stöds i vissa kombinationer av operativsystem och .NET SDK. Mer information finns i NuGet-signerad paketverifiering.

Argument

  • package-path(s)

    Anger filsökvägen till de paket som ska signeras. Flera argument kan skickas in för att signera flera paket.

Alternativ

  • --certificate-path <PATH>

    Anger filsökvägen till certifikatet som ska användas vid signering av paketet.

    Kommentar

    Det här alternativet stöder för närvarande endast PKCS12 (PFX) filer som innehåller certifikatets privata nyckel.

  • --certificate-store-name <STORENAME>

    Anger namnet på X.509-certifikatarkivet som ska användas för att söka efter certifikatet. Standardvärdet är "My"X.509-certifikatarkivet för personliga certifikat. Det här alternativet bör användas när du anger certifikatet via --certificate-subject-name eller --certificate-fingerprint alternativ.

  • --certificate-store-location <STORELOCATION>

    Anger namnet på X.509-certifikatarkivet som används för att söka efter certifikatet. Standardvärdet är "CurrentUser"X.509-certifikatarkivet som används av den aktuella användaren. Det här alternativet bör användas när du anger certifikatet via --certificate-subject-name eller --certificate-fingerprint alternativ.

  • --certificate-subject-name <SUBJECTNAME>

    Anger ämnesnamnet för certifikatet som används för att söka i ett lokalt certifikatarkiv efter certifikatet. Sökningen är en skiftlägeskänslig strängjämförelse med det angivna värdet, som hittar alla certifikat med ämnesnamnet som innehåller strängen, oavsett andra ämnesvärden. Certifikatarkivet kan anges av --certificate-store-name och --certificate-store-location alternativ.

    Kommentar

    Det här alternativet stöder för närvarande endast ett enda matchande certifikat i resultatet. Om det finns flera matchande certifikat i resultatet, eller om det inte finns något matchande certifikat i resultatet, misslyckas kommandot sign.

  • --certificate-fingerprint <FINGERPRINT>

    Anger fingeravtrycket för certifikatet som används för att söka i ett lokalt certifikatarkiv efter certifikatet.

    Från och med .NET 9 kan det här alternativet användas för att ange sha-1-, SHA-256-, SHA-384- eller SHA-512-fingeravtrycket för certifikatet. En varning utlöses dock NU3043 när ett SHA-1-certifikatsfingret används eftersom det inte längre anses vara säkert. I .NET 10 och senare versioner är varningen upphöjd till ett fel. Endast SHA-2-familjens fingeravtryck (SHA-256, SHA-384 och SHA-512) stöds.

    Alla pre-.NET 9 versioner av .NET SDK fortsätter att endast acceptera SHA-1-certifikatets fingeravtryck.

  • --certificate-password <PASSWORD>

    Anger certifikatlösenordet om det behövs. Om ett certifikat är lösenordsskyddat men inget lösenord har angetts misslyckas signeringskommandot.

    Kommentar

    Kommandot sign stöder endast icke-interaktivt läge. Det kommer inte att finnas någon uppmaning om ett lösenord vid körning.

  • --hash-algorithm <HASHALGORITHM>

    Hash-algoritm som ska användas för att signera paketet. Standardvärdet är SHA256. Möjliga värden är SHA256, SHA384 och SHA512.

  • -o|--output

    Anger den katalog där det signerade paketet ska sparas. Om det här alternativet inte anges skrivs det ursprungliga paketet som standard över av det signerade paketet.

  • --overwrite

    Ange att den aktuella signaturen ska skrivas över. Som standard misslyckas kommandot om paketet redan har en signatur.

  • --timestamp-hash-algorithm <HASHALGORITHM>

    Hash-algoritm som ska användas av RFC 3161-tidsstämpelservern. Standardvärdet är SHA256.

  • --timestamper <TIMESTAMPINGSERVER>

    URL till en RFC 3161-tidsstämplingsserver.

  • -v|--verbosity <LEVEL>

    Anger kommandots verbositetsnivå. Tillåtna värden är q[uiet], m[inimal], n[ormal], d[etailed]och diag[nostic]. Standardvärdet är minimal. Mer information finns i LoggerVerbosity.

  • -?|-h|--help

    Skriver ut en beskrivning av hur du använder kommandot.

Exempel

  • Signera foo.nupkg med certifikat cert.pfx (inte lösenordsskyddat):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • Signera foo.nupkg med certifikat cert.pfx (lösenordsskyddat):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • Signera foo.nupkg med certifikat (lösenordsskyddat) matchar det angivna SHA-256-fingeravtrycket i standardcertifikatarkivet (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password
    
  • Signera foo.nupkg med certifikat (lösenordsskyddat) matchar det angivna ämnesnamnet "Test certificate for testing signing" i standardcertifikatarkivet (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • Signera foo.nupkg med certifikat (lösenordsskyddat) matchar det angivna SHA-256-fingeravtrycket i certifikatarkivet CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • Signera flera NuGet-paket – foo.nupkg och alla .nupkg-filer i katalogen som anges med certifikat cert.pfx (inte lösenordsskyddat):

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • Signera foo.nupkg med certifikat cert.pfx(lösenordsskyddat) och tidsstämpel med http://timestamp.test:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • Signera foo.nupkg med certifikat cert.pfx(inte lösenordsskyddat) och spara det signerade paketet under den angivna katalogen:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • Signera foo.nupkg med certifikat cert.pfx(inte lösenordsskyddat) och skriv över den aktuella signaturen om paketet redan är signerat:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite