Partager via


dotnet-nuget sign

Cet article s’applique à : ✔️ SDK .NET Core 6 et versions ultérieures

Nom

dotnet nuget sign signe tous les packages NuGet correspondant au premier argument avec un certificat.

Synopsis

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

Description

La commande dotnet nuget sign signe tous les packages correspondant au premier argument avec un certificat. Le certificat avec la clé privée peut être obtenu à partir d’un fichier ou d’un certificat installé dans un magasin de certificats en fournissant un nom d’objet ou une empreinte digitale SHA-1.

Remarque

Cette commande nécessite un magasin de certificat racine valide pour le code de signature et le timestamp. En outre, cette commande peut ne pas être prise en charge sur certaines combinaisons de système d’exploitation et du SDK .NET. Pour plus d’informations, consultez Vérification du package signé NuGet.

Arguments

  • package-path(s)

    Spécifie le chemin d’accès aux packages à signer. Plusieurs arguments peuvent être transmis pour signer plusieurs packages.

Options

  • --certificate-path <PATH>

    Spécifie le chemin d’accès du fichier au certificat à utiliser pour signer le package.

    Notes

    Cette option prend actuellement en charge uniquement les fichiers PKCS12 (PFX) qui contiennent la clé privée du certificat.

  • --certificate-store-name <STORENAME>

    Spécifie le nom du magasin de certificats X.509 à utiliser pour rechercher le certificat. La valeur par défaut est "My", le magasin de certificats X.509 pour les certificats personnels. Cette option doit être utilisée lors de la spécification du certificat via les options --certificate-subject-name ou --certificate-fingerprint.

  • --certificate-store-location <STORELOCATION>

    Spécifie le nom du magasin de certificats X.509 utilisé pour rechercher le certificat. La valeur par défaut est "CurrentUser", le magasin de certificats X.509 utilisé par l’utilisateur actuel. Cette option doit être utilisée lors de la spécification du certificat via les options --certificate-subject-name ou --certificate-fingerprint.

  • --certificate-subject-name <SUBJECTNAME>

    Spécifie le nom de l’objet du certificat utilisé pour rechercher le certificat dans un magasin de certificats local. La recherche est une comparaison de chaînes (qui ne respecte pas la casse) utilisant la valeur fournie, qui trouve tous les certificats portant le nom de l’objet contenant cette chaîne, quelles que soient les autres valeurs d’objet. Le magasin de certificats peut être spécifié par les options --certificate-store-name et --certificate-store-location.

    Notes

    Cette option ne prend actuellement en charge qu’un seul certificat correspondant dans le résultat. S’il existe plusieurs certificats correspondants dans le résultat ou qu’aucun certificat correspondant n’est présent dans le résultat, la commande de signature échoue.

  • --certificate-fingerprint <FINGERPRINT>

    Spécifie l’empreinte digitale du certificat utilisé pour rechercher le certificat dans un magasin de certificats local.

    À compter de .NET 9, cette option peut être utilisée pour spécifier l’empreinte SHA-1, SHA-256, SHA-384 ou SHA-512 du certificat. Toutefois, un avertissement est déclenché lorsqu’une NU3043 empreinte digitale de certificat SHA-1 est utilisée, car elle n’est plus considérée comme sécurisée.

    Toutes les versions précédentes du Kit de développement logiciel (SDK) .NET continuent d’accepter uniquement l’empreinte digitale du certificat SHA-1.

  • --certificate-password <PASSWORD>

    Spécifie le mot de passe du certificat, si nécessaire. Si un certificat est protégé par un mot de passe, mais qu’aucun mot de passe n’est fourni, la commande de signature échoue.

    Notes

    La commande sign prend uniquement en charge le mode non interactif. Il n’y aura aucune invite de mot de passe au moment de l’exécution.

  • --hash-algorithm <HASHALGORITHM>

    Algorithme de hachage à utiliser pour signer le package. La valeur par défaut est SHA256. Les valeurs possibles sont SHA256, SHA384 et SHA512.

  • -o|--output

    Spécifie le répertoire dans lequel le package signé doit être enregistré. Si cette option n’est pas spécifiée, par défaut le package d’origine est remplacé par le package signé.

  • --overwrite

    Indique que la signature actuelle doit être remplacée. Par défaut, la commande échoue si le package a déjà une signature.

  • --timestamp-hash-algorithm <HASHALGORITHM>

    Algorithme de hachage à utiliser par le serveur de timestamp RFC 3161. La valeur par défaut est SHA256.

  • --timestamper <TIMESTAMPINGSERVER>

    URL d'un serveur de timestamp RFC 3161.

  • -v|--verbosity <LEVEL>

    Définit le niveau de détail de la commande. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic]. La valeur par défaut est minimal. Pour plus d'informations, consultez LoggerVerbosity.

  • -?|-h|--help

    Affiche une description de l’utilisation de la commande.

Exemples

  • Signer foo.nupkg avec le certificat cert.pfx (non protégé par mot de passe) :

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • Signer foo.nupkg avec le certificat cert.pfx (protégé par mot de passe) :

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • Signer foo.nupkg avec le certificat (protégé par mot de passe) correspond à l’empreinte SHA-1 spécifiée dans le magasin de certificats par défaut (CurrentUser\My) :

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
    
  • Signer foo.nupkg avec le certificat (protégé par mot de passe) correspond au nom d’objet spécifié "Test certificate for testing signing" dans le magasin de certificats par défaut (CurrentUser\My) :

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • Signer foo.nupkg avec le certificat (protégé par mot de passe) correspond à l’empreinte SHA-1 spécifiée dans le magasin de certificats CurrentUser\Root :

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • Signer plusieurs packages NuGet foo.nupkg et tous les fichiers .nupkg dans le répertoire spécifié avec le certificat cert.pfx (non protégé par mot de passe) :

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • Signer foo.nupkg avec le certificat cert.pfx (protégé par mot de passe) et timestamp avec http://timestamp.test :

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • Signer foo.nupkg avec le certificat cert.pfx (non protégé par mot de passe) et enregistrer le package signé sous le répertoire spécifié :

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • Signer foo.nupkg avec le certificat cert.pfx (non protégé par mot de passe) et remplacer la signature actuelle si le package est déjà signé :

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