Delen via


dotnet nuget-teken

Dit artikel is van toepassing op: ✔️ .NET 6 SDK en latere versies

Naam

dotnet nuget sign - Ondertekent alle NuGet-pakketten die overeenkomen met het eerste argument met een certificaat.

Samenvatting

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

Beschrijving

De dotnet nuget sign opdracht ondertekent alle pakketten die overeenkomen met het eerste argument met een certificaat. Het certificaat met de persoonlijke sleutel kan worden verkregen uit een bestand of een certificaat dat is geïnstalleerd in een certificaatarchief door een onderwerpnaam of een SHA-1-vingerafdruk op te geven.

Notitie

Voor deze opdracht is een certificaathoofdarchief vereist dat geldig is voor zowel ondertekening als tijdstempel van code. Deze opdracht wordt mogelijk niet ondersteund voor bepaalde combinaties van het besturingssysteem en .NET SDK. Zie NuGet-ondertekende pakketverificatie voor meer informatie.

Argumenten

  • package-path(s)

    Hiermee geeft u het bestandspad naar de pakketten die moeten worden ondertekend. Meerdere argumenten kunnen worden doorgegeven om meerdere pakketten te ondertekenen.

Opties

  • --certificate-path <PATH>

    Hiermee geeft u het bestandspad naar het certificaat dat moet worden gebruikt bij het ondertekenen van het pakket.

    Notitie

    Deze optie ondersteunt momenteel alleen PKCS12 (PFX) bestanden die de persoonlijke sleutel van het certificaat bevatten.

  • --certificate-store-name <STORENAME>

    Hiermee geeft u de naam van het X.509-certificaatarchief dat moet worden gebruikt om naar het certificaat te zoeken. Standaard ingesteld "My"op, het X.509-certificaatarchief voor persoonlijke certificaten. Deze optie moet worden gebruikt bij het opgeven van het certificaat via --certificate-subject-name of --certificate-fingerprint opties.

  • --certificate-store-location <STORELOCATION>

    Hiermee geeft u de naam van het X.509-certificaatarchief dat wordt gebruikt om naar het certificaat te zoeken. "CurrentUser"Het X.509-certificaatarchief dat door de huidige gebruiker wordt gebruikt, wordt standaard ingesteld. Deze optie moet worden gebruikt bij het opgeven van het certificaat via --certificate-subject-name of --certificate-fingerprint opties.

  • --certificate-subject-name <SUBJECTNAME>

    Hiermee geeft u de onderwerpnaam op van het certificaat dat wordt gebruikt om een lokaal certificaatarchief voor het certificaat te doorzoeken. De zoekopdracht is een niet-hoofdlettergevoelige tekenreeksvergelijking met behulp van de opgegeven waarde, waarmee alle certificaten met de onderwerpnaam die die tekenreeks bevatten, worden gevonden, ongeacht andere onderwerpwaarden. Het certificaatarchief kan worden opgegeven door --certificate-store-name en --certificate-store-location opties.

    Notitie

    Deze optie ondersteunt momenteel slechts één overeenkomend certificaat in het resultaat. Als het resultaat meerdere overeenkomende certificaten bevat of als er geen overeenkomend certificaat in het resultaat staat, mislukt de opdracht ondertekenen.

  • --certificate-fingerprint <FINGERPRINT>

    Hiermee geeft u de vingerafdruk op van het certificaat dat wordt gebruikt voor het doorzoeken van een lokaal certificaatarchief voor het certificaat.

    Vanaf .NET 9 kan deze optie worden gebruikt om de VINGERAFDRUK van het certificaat op te geven voor SHA-1, SHA-256, SHA-384 of SHA-512. Er wordt echter een NU3043 waarschuwing weergegeven wanneer een SHA-1-certificaatvingerafdruk wordt gebruikt omdat deze niet langer als veilig wordt beschouwd. In .NET 10 en hoger wordt de waarschuwing verhoogd naar een fout. Alleen SHA-2-familieafdruk (SHA-256, SHA-384 en SHA-512) worden ondersteund.

    Alle pre-.NET 9 versies van de .NET SDK blijven alleen sha-1 certificaatvingerafdruk accepteren.

  • --certificate-password <PASSWORD>

    Hiermee geeft u het certificaatwachtwoord op, indien nodig. Als een certificaat is beveiligd met een wachtwoord, maar er geen wachtwoord is opgegeven, mislukt de opdracht ondertekenen.

    Notitie

    De sign opdracht ondersteunt alleen niet-interactieve modus. Er wordt tijdens runtime geen wachtwoord gevraagd.

  • --hash-algorithm <HASHALGORITHM>

    Hash-algoritme dat moet worden gebruikt om het pakket te ondertekenen. Standaard ingesteld op SHA256. Mogelijke waarden zijn SHA256, SHA384 en SHA512.

  • -o|--output

    Hiermee geeft u de map waarin het ondertekende pakket moet worden opgeslagen. Als deze optie niet is opgegeven, wordt het oorspronkelijke pakket standaard overschreven door het ondertekende pakket.

  • --overwrite

    Geef aan dat de huidige handtekening moet worden overschreven. De opdracht mislukt standaard als het pakket al een handtekening heeft.

  • --timestamp-hash-algorithm <HASHALGORITHM>

    Hash-algoritme dat moet worden gebruikt door de RFC 3161-tijdstempelserver. Standaard ingesteld op SHA256.

  • --timestamper <TIMESTAMPINGSERVER>

    URL naar een RFC 3161-tijdstempelserver.

  • -v|--verbosity <LEVEL>

    Hiermee stelt u het uitgebreidheidsniveau van de opdracht in. Toegestane waarden zijnq[uiet], , , m[inimal]en n[ormal]d[etailed]diag[nostic]. De standaardwaarde is minimal. Zie LoggerVerbosity voor meer informatie.

  • -?|-h|--help

    Hiermee wordt een beschrijving afgedrukt van het gebruik van de opdracht.

Voorbeelden

  • Sign foo.nupkg with certificate cert.pfx (not password protected):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • Sign foo.nupkg with certificate cert.pfx (password protected):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • Sign foo.nupkg with certificate (password protected) matches with the specified SHA-256 fingerprint in the default certificate store (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password
    
  • Sign foo.nupkg with certificate (password protected) matches with the specified subject name "Test certificate for testing signing" in the default certificate store (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • Sign foo.nupkg with certificate (password protected) matches with the specified SHA-256 fingerprint in the certificate store CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • Sign multiple NuGet packages - foo.nupkg and all .nupkg files in the directory specified with certificate cert.pfx (not password protected):

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • Sign foo.nupkg with certificate cert.pfx (password protected) and timestamp with http://timestamp.test:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • Sign foo.nupkg with certificate cert.pfx (not password protected) and save the signed package under specified directory:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • Onderteken foo.nupkg met certificaat cert.pfx (niet met een wachtwoord beveiligd) en overschrijf de huidige handtekening als het pakket al is ondertekend:

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