dotnet nuget sign
Tento článek se vztahuje na: ✔️ .NET 6 SDK a novější verze
Název
dotnet nuget sign
– Podepíše všechny balíčky NuGet odpovídající prvnímu argumentu certifikátem.
Synopse
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
Popis
Příkaz dotnet nuget sign
podepíše všechny balíčky odpovídající prvnímu argumentu s certifikátem. Certifikát s privátním klíčem lze získat ze souboru nebo certifikátu nainstalovaného v úložišti certifikátů zadáním názvu subjektu nebo otisku prstu SHA-1.
Poznámka:
Tento příkaz vyžaduje kořenové úložiště certifikátů, které je platné pro podepisování kódu i časové razítko. Tento příkaz také nemusí být podporován v některých kombinacích operačního systému a sady .NET SDK. Další informace najdete v tématu Ověření podepsaného balíčku NuGet.
Argumenty
package-path(s)
Určuje cestu k souboru balíčkům, které se mají podepsat. K podepsání více balíčků je možné předat více argumentů.
Možnosti
--certificate-path <PATH>
Určuje cestu k souboru certifikátu, který se má použít při podepisování balíčku.
Poznámka:
Tato možnost aktuálně podporuje pouze
PKCS12 (PFX)
soubory, které obsahují privátní klíč certifikátu.--certificate-store-name <STORENAME>
Určuje název úložiště certifikátů X.509, který se má použít k vyhledání certifikátu. "My"Ve výchozím nastavení je úložiště certifikátů X.509 pro osobní certifikáty. Tato možnost by se měla použít při zadávání certifikátu prostřednictvím
--certificate-subject-name
nebo--certificate-fingerprint
možností.--certificate-store-location <STORELOCATION>
Určuje název úložiště certifikátů X.509, který slouží k vyhledání certifikátu. Ve výchozím nastavení se "CurrentUser"používá úložiště certifikátů X.509 používané aktuálním uživatelem. Tato možnost by se měla použít při zadávání certifikátu prostřednictvím
--certificate-subject-name
nebo--certificate-fingerprint
možností.--certificate-subject-name <SUBJECTNAME>
Určuje název subjektu certifikátu použitého k vyhledání certifikátu v místním úložišti certifikátů. Hledání nerozlišuje velká a malá písmena při porovnávání řetězců pomocí zadané hodnoty, která najde všechny certifikáty s názvem subjektu obsahujícím tento řetězec bez ohledu na jiné hodnoty subjektu. Úložiště certifikátů je možné zadat pomocí
--certificate-store-name
možností.--certificate-store-location
Poznámka:
Tato možnost v současné době podporuje pouze jeden odpovídající certifikát ve výsledku. Pokud výsledek obsahuje více odpovídajících certifikátů nebo ve výsledku žádný odpovídající certifikát, příkaz podepsat se nezdaří.
--certificate-fingerprint <FINGERPRINT>
Určuje otisk certifikátu použitého k vyhledání místního úložiště certifikátů pro certifikát.
Od rozhraní .NET 9 můžete tuto možnost použít k určení otisku certifikátu SHA-1, SHA-256, SHA-384 nebo SHA-512. Upozornění se však vyvolá, když se použije otisk certifikátu SHA-1,
NU3043
protože se už nepovažuje za bezpečný.Všechny předchozí verze sady .NET SDK nadále přijímají jenom otisk certifikátu SHA-1.
--certificate-password <PASSWORD>
V případě potřeby určuje heslo certifikátu. Pokud je certifikát chráněný heslem, ale není k dispozici žádné heslo, příkaz pro podepsání selže.
Poznámka:
Příkaz
sign
podporuje pouze neinteraktivní režim. V době běhu se nezobrazí výzva k zadání hesla.--hash-algorithm <HASHALGORITHM>
Algoritmus hash, který se má použít k podepsání balíčku. Výchozí hodnota je SHA256. Možné hodnoty jsou SHA256, SHA384 a SHA512.
-o|--output
Určuje adresář, do kterého se má podepsaný balíček uložit. Pokud tuto možnost nezadáte, původní balíček se ve výchozím nastavení přepíše podepsaným balíčkem.
--overwrite
Označuje, že aktuální podpis by měl být přepsán. Ve výchozím nastavení příkaz selže, pokud už balíček obsahuje podpis.
--timestamp-hash-algorithm <HASHALGORITHM>
Algoritmus hash používaný serverem časového razítka RFC 3161. Výchozí hodnota je SHA256.
--timestamper <TIMESTAMPINGSERVER>
Adresa URL serveru časového razítka RFC 3161
-v|--verbosity <LEVEL>
Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou
q[uiet]
, ,n[ormal]
m[inimal]
,d[etailed]
adiag[nostic]
. Výchozí hodnota jeminimal
. Další informace najdete na webu LoggerVerbosity.
-?|-h|--help
Vytiskne popis použití příkazu.
Příklady
Podepište soubor foo.nupkg pomocí certifikátu cert.pfx (není chráněný heslem):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx
Podepište soubor foo.nupkg pomocí certifikátu cert.pfx (chráněný heslem):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
Podepište foo.nupkg pomocí certifikátu (chráněného heslem) se zadaným otiskem sha-1 ve výchozím úložišti certifikátů (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
Podepište foo.nupkg pomocí certifikátu (chráněného heslem) se zadaným názvem "Test certificate for testing signing" subjektu ve výchozím úložišti certifikátů (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
Podepište foo.nupkg pomocí certifikátu (chráněného heslem) se zadaným otiskem SHA-1 v úložišti certifikátů CurrentUser\Root:
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
Podepište několik balíčků NuGet – foo.nupkg a všechny soubory .nupkg v adresáři určeném certifikátem cert.pfx (ne chráněné heslem):
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
Podepište foo.nupkg pomocí certifikátu cert.pfx (chráněné heslem) a časové razítko pomocí
http://timestamp.test
:dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
Podepište soubor foo.nupkg pomocí certifikátu cert.pfx (není chráněný heslem) a uložte podepsaný balíček do zadaného adresáře:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
Podepište soubor foo.nupkg pomocí certifikátu cert.pfx (není chráněný heslem) a přepište aktuální podpis, pokud už je balíček podepsaný:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite