Cómo: Firmar archivos de instalación con SignTool.exe (ClickOnce)How to: Sign Setup Files with SignTool.exe (ClickOnce)

Puede usar SignTool.exe para firmar un programa de instalación (setup.exe).You can use SignTool.exe to sign a Setup program (setup.exe). Este proceso ayuda a garantizar que no se instalen archivos alterados en los equipos de los usuarios finales.This process helps ensure that tampered files are not installed on end-user computers.

De forma predeterminada, ClickOnce tiene manifiestos firmados y un programa de instalación firmado.By default, ClickOnce has signed manifests and a signed Setup program. Sin embargo, si más tarde quiere cambiar los parámetros del programa de instalación, debe firmarlo.However, if you want to change the parameters of the Setup program later, you must sign the Setup program later. Si cambia los parámetros una vez firmado el programa de instalación, la firma se daña.If you change the parameters after the Setup program is signed, the signature becomes corrupted.

El procedimiento siguiente genera manifiestos sin firmar y un programa de instalación sin firmar.The following procedure generates unsigned manifests and an unsigned Setup program. Después, se habilita la firma de ClickOnce en Visual Studio para generar manifiestos firmados.Then, ClickOnce signing is enabled in Visual Studio to generate signed manifests. El programa de instalación se deja sin firmar para que el cliente pueda firmar el ejecutable con su propio certificado.The Setup program is left unsigned so that the customer can sign the executable with their own certificate.

Para generar un programa de instalación sin firmar y firmarlo más adelanteTo generate an unsigned Setup program and sign later

  1. En el equipo de desarrollo, instale el certificado con el que quiere firmar el manifiesto.On the development computer, install the certificate that you want the sign the manifests with.

  2. Seleccione el proyecto en el Explorador de soluciones.Select the project in Solution Explorer.

  3. En el proyecto menú, haga clic en ProjectName propiedades.On the Project menu, click ProjectName Properties.

  4. En el firma página, desactive firmar los manifiestos de ClickOnce.In the Signing page, clear Sign the ClickOnce manifests.

  5. En el publicar página, haga clic en requisitos previos.In the Publish page, click Prerequisites.

  6. Compruebe que todos los requisitos previos están seleccionados y, a continuación, haga clic en Aceptar.Verify that all the prerequisites are selected, and then click OK.

  7. En el publicar página, compruebe la configuración de publicación y, a continuación, haga clic en publicar ahora.In the Publish page, verify the publish settings and then click Publish Now.

    La solución publica el manifiesto de la aplicación sin firmar, el manifiesto de implementación sin firmar, los archivos específicos de la versión y el programa de instalación sin firmar en la ubicación de la carpeta de publicación.The solution publishes the unsigned application manifest, unsigned deployment manifest, version-specific files, and unsigned Setup program to the publishing folder location.

  8. En el publicar página, haga clic en requisitos previos.In the Publish page, click Prerequisites.

  9. En el requisitos previos cuadro de diálogo, desactive crear programa de instalación para instalar los componentes necesarios.In the Prerequisites dialog box, clear Create setup program to install prerequisite components.

  10. En el publicar página, compruebe la configuración de publicación y, a continuación, haga clic en publicar ahora.In the Publish page, verify the publish settings and then click Publish Now.

    La solución publica el manifiesto de la aplicación firmado, el manifiesto de implementación firmado y los archivos específicos de la versión en la ubicación de la carpeta de publicación.The solution publishes the signed application manifest, signed deployment manifest, and version-specific files to the publishing folder location. El proceso de publicación no sobrescribe el programa de instalación sin firmar.The unsigned Setup program is not overwritten by the publish process.

  11. En el sitio del cliente, abra un símbolo del sistema.At the customer site, open a command prompt.

  12. Cambie al directorio que contiene el archivo .exe.Change to the directory that contains the .exe file.

  13. Firme el archivo .exe con el siguiente comando:Sign the .exe file with the following command:

    signtool sign /sha1 CertificateHash Setup.exe  
    signtool sign /f CertFileName Setup.exe  
    

    Por ejemplo, para firmar el programa de instalación, use uno de los comandos siguientes:For example, to sign the Setup program, use one of the following commands:

    signtool sign /sha1 CCB... Setup.exe  
    signtool sign /f CertFileName Setup.exe  
    

Vea tambiénSee Also

Cómo: Volver a firmar manifiestos de aplicación e implementaciónHow to: Re-sign Application and Deployment Manifests