dotnet nuget sign

Este artículo se aplica a: ✔️ SDK de .NET 6 y versiones posteriores

Name

dotnet nuget sign: firma todos los paquetes NuGet en los que el primer argumento coincide con un certificado.

Sinopsis

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

Descripción

El comando dotnet nuget sign firma todos los paquetes en los que el primer argumento coincide con un certificado. El certificado con la clave privada se puede obtener de un archivo o de un certificado instalado en un almacén de certificados si se proporcionan un nombre de sujeto o una huella digital SHA-1.

Nota

Este comando requiere un almacén raíz de certificado que sea válido para la firma de código y la marca de tiempo. Además, es posible que este comando no se admita en algunas combinaciones del sistema operativo y el SDK de .NET. Para obtener más información, consulte Comprobación del paquete firmado de NuGet.

Argumentos

  • package-path(s)

    Especifica la ruta de acceso al paquete que se va a firmar. Se pueden pasar varios argumentos para firmar varios paquetes.

Opciones

  • --certificate-path <PATH>

    Especifica la ruta del archivo al certificado que se utilizará al firmar el paquete.

    Nota:

    Actualmente, esta opción solo admite archivos PKCS12 (PFX) que contengan la clave privada del certificado.

  • --certificate-store-name <STORENAME>

    Especifica el nombre del almacén de certificados X.509 que se usará para buscar el certificado. El valor predeterminado es "My", el almacén de certificados X.509 para certificados personales. Esta opción se debe usar al especificar el certificado mediante las opciones --certificate-subject-name o --certificate-fingerprint.

  • --certificate-store-location <STORELOCATION>

    Especifica el nombre del almacén de certificados X.509 que se usará para buscar el certificado. El valor predeterminado es "CurrentUser", el almacén de certificados X.509 que utiliza el usuario actual. Esta opción se debe usar al especificar el certificado mediante las opciones --certificate-subject-name o --certificate-fingerprint.

  • --certificate-subject-name <SUBJECTNAME>

    Especifica el nombre del firmante del certificado que se usa para buscar el certificado en un almacén de certificados local. La búsqueda es una comparación de cadenas sin distinción de mayúsculas y minúsculas mediante el valor proporcionado, que busca todos los certificados con el nombre del firmante que contiene esa cadena, con independencia de otros valores de firmante. El almacén de certificados se puede especificar mediante las opciones --certificate-store-name y --certificate-store-location.

    Nota:

    Actualmente, esta opción solo admite la coincidencia de un único certificado en el resultado. Si en el resultado hay varios certificados que coinciden, o no hay ninguno, se producirá un error en el comando sign.

  • --certificate-fingerprint <FINGERPRINT>

    Huella digital SHA-1 del certificado que se usa para buscar el certificado en un almacén de certificados local.

  • --certificate-password <PASSWORD>

    Especifica la contraseña del certificado, si es necesario. Si un certificado está protegido con contraseña pero no se proporciona ninguna, se producirá un error en el comando sign.

    Nota:

    El comando sign solo admite el modo no interactivo. No se solicitará ninguna contraseña en tiempo de ejecución.

  • --hash-algorithm <HASHALGORITHM>

    Algoritmo hash que se va a usar para firmar el paquete. El valor predeterminado es SHA256. Los valores posibles son SHA256, SHA384 y SHA512.

  • -o|--output

    Especifica el directorio donde se debe guardar el paquete firmado. Si no se especifica esta opción, de forma predeterminada el paquete firmado sobrescribe el paquete original.

  • --overwrite

    Indique que se debe sobrescribir la firma actual. De forma predeterminada, se producirá un error en el comando si el paquete ya tiene una firma.

  • --timestamp-hash-algorithm <HASHALGORITHM>

    Algoritmo hash que va a usar el servidor de asignación de marca de tiempo RFC 3161. El valor predeterminado es SHA256.

  • --timestamper <TIMESTAMPINGSERVER>

    Dirección URL a un servidor de asignación de marca de tiempo RFC 3161.

  • -v|--verbosity <LEVEL>

    Establece el nivel de detalle del comando. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic]. De manera predeterminada, es minimal. Para obtener más información, vea LoggerVerbosity.

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando.

Ejemplos

  • Firme foo.nupkg con el certificado cert.pfx (sin protección con contraseña):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx
    
  • Firme foo.nupkg con el certificado cert.pfx (con protección con contraseña):

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
    
  • Firme foo.nupkg con el certificado (con protección con contraseña) que coincide con la huella digital SHA-1 especificada en el almacén de certificados predeterminado (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
    
  • Firme foo.nupkg con el certificado (con protección con contraseña) que coincide con el nombre del firmante "Test certificate for testing signing" especificado en el almacén de certificados predeterminado (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
    
  • Firme foo.nupkg con el certificado (con protección con contraseña) que coincide con la huella digital SHA-1 especificada en el almacén de certificados CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
    
  • Firme varios paquetes NuGet: foo.nupkg y todos los archivos .nupkg del directorio especificado con el certificado cert.pfx (sin protección con contraseña):

    dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
    
  • Firme foo.nupkg con el certificado cert.pfx (con protección con contraseña) y la marca de tiempo http://timestamp.test:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
    
  • Firme foo.nupkg con el certificado cert.pfx (sin protección con contraseña) y guarde el paquete firmado en el directorio especificado:

    dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
    
  • Firme foo.nupkg con el certificado cert.pfx (sin protección con contraseña) y sobrescriba la firma actual si el paquete ya está firmado:

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