Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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-nameeller--certificate-fingerprintalternativ.--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-nameeller--certificate-fingerprintalternativ.--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-nameoch--certificate-store-locationalternativ.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
NU3043nä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
signstö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|--outputAnger 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.
--overwriteAnge 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]ochdiag[nostic]. Standardvärdet ärminimal. Mer information finns i LoggerVerbosity.
-?|-h|--helpSkriver 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.pfxSignera foo.nupkg med certifikat cert.pfx (lösenordsskyddat):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password passwordSignera 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 passwordSignera 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 passwordSignera 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 RootSignera 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.pfxSignera 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.testSignera 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