Sdílet prostřednictvím


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]a diag[nostic]. Výchozí hodnota je minimal. 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