Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 che per il timestamp. Inoltre, questo comando potrebbe 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-nameo--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-nameo--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-namee--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
NU3043avviso quando viene usata un'impronta digitale del certificato SHA-1 perché non è più considerata sicura. In .NET 10 e versioni successive , l'avviso viene elevato a un errore. Sono supportate solo le impronte digitali della famiglia SHA-256, SHA-384 e SHA-512.Tutte le pre-.NET 9 versioni 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
signsupporta 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|--outputSpecifica la directory in cui salvare il pacchetto firmato. Se questa opzione non è specificata, per impostazione predefinita il pacchetto originale viene sovrascritto dal pacchetto firmato.
--overwriteIndica 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]ediag[nostic]. Il valore predefinito èminimal. Per ulteriori informazioni, vedere LoggerVerbosity. -
-?|-h|--helpStampa 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.pfxFirmare foo.nupkg con il certificato cert.pfx (protetto da password):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password passwordFirmare foo.nupkg con certificato (protetto da password) corrisponde all'impronta digitale SHA-256 specificata nell'archivio certificati predefinito (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password passwordFirmare 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 passwordFirmare foo.nupkg con certificato (protetto da password) corrisponde all'impronta digitale SHA-256 specificata nell'archivio certificati CurrentUser\Root:
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name RootFirmare 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.pfxFirmare 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.testFirmare 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