Condividi tramite


dotnet nuget sign

Questo articolo si applica a: ✔️ .NET 6 SDK e versioni successive

Nome

dotnet nuget sign: firma tutti i pacchetti NuGet corrispondenti al primo argomento con un certificato.

Riepilogo

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

Descrizione

Il comando dotnet nuget sign firma tutti i pacchetti corrispondenti al primo argomento con un certificato. Il certificato con la chiave privata può essere ottenuto da un file o da un certificato installato in un archivio certificati fornendo un nome soggetto o un'impronta digitale SHA-1.

Nota

Questo comando richiede un archivio radice del certificato valido sia per la firma del codice sia per il timestamp. Questo comando potrebbe inoltre non essere supportato in alcune combinazioni di sistema operativo e .NET SDK. Per altre informazioni, vedere Verifica del pacchetto NuGet firmato.

Argomenti

  • package-path(s)

    Specifica il percorso del file dei pacchetti da firmare. È possibile passare più argomenti per firmare più pacchetti.

Opzioni

  • --certificate-path <PATH>

    Specifica il percorso del file per il certificato da usare per firmare il pacchetto.

    Nota

    Questa opzione supporta attualmente solo i file PKCS12 (PFX) che contengono la chiave privata del certificato.

  • --certificate-store-name <STORENAME>

    Specifica il nome dell'archivio certificati X.509 da usare per cercare il certificato. L'impostazione predefinita è "My", ovvero l'archivio certificati X.509 per i certificati personali. Questa opzione deve essere usata quando si specifica il certificato tramite le opzioni --certificate-subject-name o --certificate-fingerprint.

  • --certificate-store-location <STORELOCATION>

    Specifica il nome dell'archivio certificati X.509 usato per cercare il certificato. Il valore predefinito è "CurrentUser", ovvero l'archivio certificati X.509 usato dall'utente corrente. Questa opzione deve essere usata quando si specifica il certificato tramite le opzioni --certificate-subject-name o --certificate-fingerprint.

  • --certificate-subject-name <SUBJECTNAME>

    Specifica il nome soggetto del certificato usato per cercare il certificato in un archivio certificati locale. La ricerca è un confronto tra stringhe senza distinzione tra maiuscole e minuscole mediante il valore fornito, che trova tutti i certificati con il nome soggetto contenente tale stringa, indipendentemente dagli altri valori del soggetto. L'archivio certificati può essere specificato tramite le opzioni --certificate-store-name e --certificate-store-location.

    Nota

    Questa opzione supporta attualmente solo un singolo certificato corrispondente nel risultato. Se sono presenti più certificati corrispondenti nel risultato o il risultato non include alcun certificato corrispondente, il comando di firma avrà esito negativo.

  • --certificate-fingerprint <FINGERPRINT>

    Specifica l'impronta digitale del certificato usato per cercare il certificato in un archivio certificati locale.

    A partire da .NET 9, questa opzione può essere usata per specificare l'impronta digitale SHA-1, SHA-256, SHA-384 o SHA-512 del certificato. Tuttavia, viene generato un NU3043 avviso quando viene usata un'impronta digitale del certificato SHA-1 perché non è più considerata sicura.

    Tutte le versioni precedenti di .NET SDK continuano ad accettare solo l'impronta digitale del certificato SHA-1.

  • --certificate-password <PASSWORD>

    Specifica la password del certificato, se necessario. Se un certificato è protetto da password ma non viene specificata alcuna password, il comando di firma avrà esito negativo.

    Nota

    Il comando sign supporta solo la modalità non interattiva. Non verrà richiesta alcuna password in fase di esecuzione.

  • --hash-algorithm <HASHALGORITHM>

    Algoritmo hash da usare per firmare il pacchetto. L'impostazione predefinita è SHA256. I valori possibili sono SHA256, SHA384 e SHA512.

  • -o|--output

    Specifica la directory in cui salvare il pacchetto firmato. Se questa opzione non è specificata, per impostazione predefinita il pacchetto originale viene sovrascritto dal pacchetto firmato.

  • --overwrite

    Indica che la firma corrente deve essere sovrascritta. Per impostazione predefinita, il comando avrà esito negativo se il pacchetto ha già una firma.

  • --timestamp-hash-algorithm <HASHALGORITHM>

    Algoritmo hash che deve essere usato dal server timestamp RFC 3161. L'impostazione predefinita è SHA256.

  • --timestamper <TIMESTAMPINGSERVER>

    URL di un server timestamp RFC3161.

  • -v|--verbosity <LEVEL>

    Imposta il livello di dettaglio del comando. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Il valore predefinito è minimal. Per ulteriori informazioni, vedere LoggerVerbosity.

  • -?|-h|--help

    Stampa le istruzioni di utilizzo del comando.

Esempi

  • Firmare foo.nupkg con il certificato cert.pfx (non protetto da password):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • Firmare foo.nupkg con il certificato cert.pfx (protetto da password):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • Firmare foo.nupkg con il certificato (protetto da password) corrispondente all'impronta digitale SHA-1 specificata nell'archivio certificati predefinito (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
    
  • Firmare foo.nupkg con il certificato (protetto da password) corrispondente al nome soggetto specificato "Test certificate for testing signing" nell'archivio certificati predefinito (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • Firmare foo.nupkg con il certificato (protetto da password) corrispondente all'impronta digitale SHA-1 specificata nell'archivio certificati CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • Firmare più pacchetti NuGet: foo.nupkg e tutti i file con estensione nupkg nella directory specificata con il certificato cert.pfx (non protetto da password):

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • Firmare foo.nupkg con il certificato cert.pfx (protetto da password) applicare il timestamp con http://timestamp.test:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • Firmare foo.nupkg con il certificato cert.pfx (non protetto da password) e salvare il pacchetto firmato nella directory specificata:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • Firmare foo.nupkg con il certificato cert.pfx (non protetto da password) e sovrascrivere la firma corrente se il pacchetto è già firmato:

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