Referencia de la CLI de firma para paquetes VSIX
sign
- Herramienta Dotnet que se usa para firmar archivos y contenedores mediante certificados PFX, CER o P7B en disco o desde el Administrador de certificados de Windows (WCM), proveedores de servicios criptográficos (CSP) o Azure Key Vault.
Importante
La CLI de firma solo admite SHA-256
, SHA-384
y SHA-512
como algoritmos de huella digital válidos. Puede usar PowerShell para obtener huellas digitales mediante: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize
Importante
La CLI de firma solo admite RSA
algoritmos, por lo que el uso ECDSA
de para generar la huella digital producirá un error en la validación de firmas durante la instalación. Esto no bloquea la instalación, pero se mostrarán advertencias de "Firma no válida" en la ventana instalador de VSIX durante la instalación.
Sinopsis
sign code certificate-store [<PATH(s)>]
[-cf|--certificate-file <PATH>]
[-p|--password <PASSWORD>]
[-cfp|--certificate-fingerprint <SHA>]
[-csp|--crypto-service-provider <CSPNAME>]
[-k|--key-container <HASHALGORITHM>]
[-km|--use-machine-key-container]
[-d|--description <DESCRIPTION>]
[-u|--descriptionUrl <URL>]
[-fd|--file-digest <DIGEST>]
[-t|--timestamp-url <URL>]
[-tr|--timestamp-rfc3161 <URL>]
[-td|--timestamp-digest <DIGEST>]
[-o|--output <PATH>]
[-b|--base-directory <wORKINGDIRECTORY>]
[-f|--force]
[-m|--max-concurrency <MAXCONCURRENCY>]
[-fl|--filelist <FILELISTPATH>]
sign code certificate-store -h|--help
Descripción
Sign CLI
es una herramienta dotnet que firma de forma recursiva archivos y contenedores con un certificado y privado. El certificado y la clave privada se pueden obtener de un archivo (PFX, P7B, CER) o de un certificado instalado en un almacén de certificados proporcionando una SHA-256
huella digital , SHA-384
o SHA-512
. Se puede acceder a las claves USB mediante un proveedor de servicios criptográficos (CSP) implementado por el fabricante y accedido desde el almacén de certificados.
Instalación
Instalación global de la CLI de inicio de sesión mediante dotnet tool install sign --prerelease --global
Instalación sin conexión de la CLI de firma
Para entornos aislados, puede descargar un paquete NuGet de la CLI de firma e instalarlo mediante:
dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>
Argumentos
VSIX-paths(s)
Especifica las rutas de acceso al paquete VSIX que se van a firmar.
Opciones
-cf|--certificate-file <PATH>
Archivo PFX, P7B o CER que contiene un certificado y potencialmente una clave privada.
-p|--password <PASSWORD>
Contraseña opcional para el archivo de certificado.
-cfp|--certificate-fingerprint <SHA>
Huella digital SHA-256, SHA-384 o SHA-512 usada para identificar un certificado antes de la firma.
-csp|--crypto-service-provider <CSP NAME>
Proveedor de servicios criptográficos que contiene una clave privada.
Nota:
Puede ver todos los CSP disponibles ejecutando
certutil -csplist
, donde los CSP heredados especifican un "Tipo de proveedor" y los proveedores de CNG suelen tener "Proveedor de almacenamiento de claves" en sus nombres.certutil -csptest "<provider name>"
proporciona más información sobre proveedores específicos.-k|--key-container <CONTAINER NAME>]
Nombre del contenedor de claves privadas.
Nota:
Puede encontrar todas las claves almacenadas en un CSP mediante la ejecución
certutil -csp <Provider Name> -key
de .-km|--use-machine-key-container]
Use un contenedor de claves privadas de nivel de máquina en lugar del contenedor de nivel de usuario predeterminado.
-d|--description <DESCRIPTION>
Descripción del certificado de firma.
-u|--descriptionUrl <URL>
Descripción Dirección URL del certificado de firma.
-fd | --file-digest <DIGEST>
Algoritmo de síntesis con el que se va a aplicar un algoritmo hash al archivo.
-t|--timestamp-url <URL>
DIRECCIÓN URL del servidor de marca de tiempo rfC 3161. [valor predeterminado: http://timestamp.acs.microsoft.com/]
-tr | --timestamp-rfc3161 <URL>
Especifica la dirección URL del servidor de marca de tiempo RFC 3161.
-td|--timestamp-digest <DIGEST>
Se usa con
-tr
el modificador para solicitar un algoritmo de resumen utilizado por el servidor de marca de tiempo RFC 3161.-o|--output <PATH>
Archivo o carpeta de salida si se especifican varios archivos. Si se omite, se sobrescribe la entrada.
-b|--base-directory <PATH>
Directorio base para que los archivos invaliden el directorio de trabajo.
--f|--force
Sobrescribe una firma si existe.
-m|--max-concurrency <MAXCONCURRENCY>
Simultaneidad máxima (el valor predeterminado es 4)
-fl | --filelist <PATH>
Ruta de acceso al archivo que contiene rutas de acceso de archivos que se van a firmar o excluir de la firma dentro del contenedor.
-?|-h|--help
Imprime una descripción de cómo usar el comando .
Ejemplos
Firme contoso.vsix con un certificado importado al almacén de certificados de usuario :
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Firme contoso.vsix con certificado cert.pfx (no protegido con contraseña) mediante una huella digital SHA-512:
sign code certificate-store contoso.vsix -cfp A87A6F...894559B981 -cfpa sha512 -cf D:\certificates\cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Firma contoso.vsix con certificado cert.pfx (protegido con contraseña):
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Firmar varios paquetes VSIX: contoso.vsix y todos los archivos .vsix del directorio especificados con certificado cert.pfx (no protegido con contraseña):
sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Firme contoso.vsix con un certificado almacenado en una unidad USB segura.
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Firme contoso.vsix con un certificado almacenado en una unidad USB segura y acceda al mismo desde el almacén de certificados de la máquina (opción-km).
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -km -d "Constoso VSIX Signature" -u "http://www.contoso.com"
Nota:
Cuando
-k
no se proporciona la opción , la herramienta comprueba todos los contenedores del CSP proporcionado para obtener un certificado de huella digital SHA coincidente.Firme contoso.vsix con un certificado almacenado en una unidad USB segura que especifique el algoritmo de síntesis de archivos (-fd), el servidor de marca de tiempo (-t) y una ruta de acceso de salida personalizada (-o) para el VSIX firmado.
sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com" -t "http://timestamp.acs.microsoft.com/" -fd sha256 -o "ContosoSigned.vsix"