Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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-namenebo--certificate-fingerprintmož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-namenebo--certificate-fingerprintmož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-namemožností.--certificate-store-locationPozná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,
NU3043protože se už nepovažuje za bezpečný. V .NET 10 a novějších verzích se upozornění zvýší na chybu. Podporují se pouze otisky prstů rodiny SHA-2 (SHA-256, SHA-384 a SHA-512).Všechny pre-.NET 9 verzí sady .NET SDK nadále přijímají 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
signpodporuje pouze neinteraktivní režim. Za 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|--outputUrč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.
--overwriteOznač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], ,m[inimal]n[ormal],d[etailed]adiag[nostic]. Výchozí hodnota jeminimal. Další informace najdete na webu LoggerVerbosity. -
-?|-h|--helpVytiskne 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.pfxPodepište soubor foo.nupkg pomocí certifikátu cert.pfx (chráněný heslem):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password passwordPodepište foo.nupkg pomocí certifikátu (chráněného heslem) se zadaným otiskem prstu SHA-256 ve výchozím úložišti certifikátů (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password passwordPodepiš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 passwordPodepište foo.nupkg pomocí certifikátu (chráněného heslem) se zadaným otiskem sha-256 v úložišti certifikátů CurrentUser\Root:
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name RootPodepiš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.pfxPodepiš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.testPodepiš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