Compartir a través de


Firmar manifiestos de implementación y aplicación

Si quiere publicar una aplicación mediante la implementación ClickOnce, los manifiestos de aplicación e implementación deben estar firmados con un par de claves pública y privada mediante la tecnología Authenticode. Puede firmar los manifiestos con un certificado del almacén de certificados de Windows o un archivo de clave.

La información de este artículo solo se aplica si usa .NET Framework 4.8.1 o versiones anteriores. Si usa .NET 5 o una versión posterior, siga los pasos descritos en Implementación de una aplicación de escritorio de Windows de .NET con ClickOnce.

Para obtener más información sobre la implementación ClickOnce, consulte Seguridad e implementación ClickOnce.

Firmar los manifiestos de ClickOnce es opcional para aplicaciones basadas en .exe. Para obtener más información, consulte la sección "Generar manifiestos sin firmar" de este documento.

Para obtener información sobre la creación de archivos de claves, consulte Cómo: Crear un par de claves privada y pública.

Nota

Visual Studio solo admite archivos de claves de intercambio de información personal (PFX) que tienen la extensión .pfx. En cambio, puede seleccionar otros tipos de certificados desde el almacén de certificados de Windows del usuario actual si hace clic en Seleccionar del almacén en la página Firma de las propiedades del proyecto.

Inicio de sesión con un certificado

Para usar este método, debe tener un certificado firmado por una entidad de certificación (CA). Los certificados los emiten proveedores de servicios de certificación de terceros u organizaciones autorizadas en una empresa.

  1. Vaya a la ventana de propiedades del proyecto (haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y seleccione Propiedades). En la pestaña Firma, active la casilla Firmar los manifiestos de ClickOnce.

  2. Haga clic en el botón Seleccionar del almacén.

    Aparece el cuadro de diálogo Seleccionar un certificado y se muestra el contenido del almacén de certificados de Windows.

    Sugerencia

    Si hace clic en Haga clic aquí para ver las propiedades del certificado, aparece el cuadro de diálogo Detalles del certificado. Este cuadro de diálogo incluye información detallada sobre el certificado y opciones adicionales. Haga clic en Certificados para ver información de ayuda adicional.

  3. Seleccione el certificado que quiera usar para firmar los manifiestos.

    Sugerencia

    Si en el almacén no hay certificados, puede seguir firmando con un certificado de prueba.

  4. Además, puede especificar la dirección de un servidor de marca de tiempo en el cuadro de texto Dirección URL del servidor de marca de tiempo. Se trata de un servidor que proporciona una marca de tiempo que especifica cuándo se ha firmado el manifiesto. Normalmente lo proporciona el mismo tercero que ofrece certificados firmados por una CA.

Inicio de sesión con un archivo de clave existente

  1. En la página Firma, active la casilla Firmar los manifiestos de ClickOnce.

  2. Haga clic en el botón Seleccionar de archivo.

    Aparece el cuadro de diálogo Seleccionar archivo.

  3. En el cuadro de diálogo Seleccionar archivo, vaya a la ubicación del archivo de claves (.pfx) que quiere usar y después haga clic en Abrir.

    Nota

    Esta opción solo admite archivos que tengan la extensión .pfx. Si tiene un archivo de claves o un certificado en otro formato, almacénelo en el almacén de certificados de Windows y seleccione el certificado como se describe en el procedimiento anterior. El propósito del certificado seleccionado debe incluir firma de código.

    Aparece el cuadro de diálogo Escribir la contraseña para abrir el archivo. (Si el archivo .pfx ya está almacenado en el almacén de certificados de Windows o no está protegido por contraseña, no se le pedirá que escriba una contraseña).

  4. Escriba la contraseña para acceder al archivo de claves y seleccione ENTRAR.

  5. Seleccione Más detalles... para ver las propiedades del certificado. ClickOnce muestra el valor del campo Asunto como publicador cuando muestra el certificado cuando un usuario instala la aplicación. Este es un ejemplo de lo que ve el usuario cuando se instala la aplicación ClickOnce:

    Captura de pantalla del certificado que se muestra en el momento de la instalación de la aplicación.

Nota:

El archivo .pfx no puede incluir información de encadenamiento de certificados. Si lo hace, se producirá el siguiente error de importación: No se encuentra el certificado y la clave privada para el descifrado. Para quitar la información de encadenamiento de certificados, puede usar Certmgr.msc y deshabilitar la opción para Incluir todos los certificados al exportar el archivo *.pfx.

Inicio de sesión con un certificado de prueba

Los certificados de prueba no los firma una entidad de certificación (CA) y solo se deben usar para realizar pruebas. Para obtener más información sobre los certificados de prueba, vea Cómo el uso de entidades de certificación ayuda a los usuarios.

  1. En la página Firma, active la casilla Firmar los manifiestos de ClickOnce.

  2. Para crear un certificado de prueba, haga clic en el botón Crear certificado de prueba.

  3. En el cuadro de diálogo Crear certificado de prueba, escriba una contraseña para ayudar a proteger el certificado de prueba.

Nota:

Asegúrese de elegir sha256RSA como algoritmo de firma, a menos que tenga como destino .NET 2.0.

Generar manifiestos sin firmar

Firmar los manifiestos de ClickOnce es opcional para aplicaciones basadas en .exe. En los procedimientos siguientes, se muestra cómo generar manifiestos sin firmar de ClickOnce.

Importante

Los manifiestos sin firmar pueden simplificar el desarrollo y las pruebas de la aplicación. En cambio, los manifiestos sin firmar introducen riesgos de seguridad considerables en un entorno de producción. Considere solo el uso de manifiestos sin firmar si la aplicación ClickOnce se ejecuta en equipos de una intranet que está completamente aislada de Internet u otros orígenes de código malintencionado.

De manera predeterminada, ClickOnce genera de forma automática manifiestos firmados a menos que se excluyan de forma específica uno o varios archivos del código hash generado. En otras palabras, si se incluyen todos los archivos en el código hash, la aplicación se publica con manifiestos firmados, incluso si la casilla Firmar los manifiestos de ClickOnce está desactivada.

Para generar manifiestos sin firmar e incluir todos los archivos en el código hash generado

Para generar manifiestos sin firmar que incluyan todos los archivos en el código hash, primero debe publicar la aplicación junto con los manifiestos firmados. Por tanto, firme primero los manifiestos de ClickOnce mediante uno de los procedimientos anteriores y después publique la aplicación.

  1. En la pestaña Firma, desactive la casilla Firmar los manifiestos de ClickOnce.

  2. En la pestaña Publicar, restablezca la versión de publicación para que solo esté disponible una versión de la aplicación. Desactive la casilla Automatically increment the version with each publish (Incrementar automáticamente la versión con cada publicación). De manera predeterminada, Visual Studio incrementa de forma automática el número de revisión de la versión de publicación cada vez que se publica una aplicación. Para obtener más información, consulte Cómo: Establecer la versión de publicación de ClickOnce.

  3. Publique la aplicación. Visual Studio le indica que la aplicación se firmó con una clave diferente a la existente en el servidor y le pregunta si quiere sobrescribirla. Elija .

Para generar manifiestos sin firmar y excluir uno o varios archivos del código hash generado

  1. En la página Firma, desactive la casilla Firmar los manifiestos de ClickOnce.

  2. En la pestaña Publicar, elija el botón Archivos de aplicación para abrir el cuadro de diálogo Archivos de aplicación y establezca Hash en Excluir para los archivos que quiera excluir del hash generado.

    Nota

    Excluir un archivo del código hash configura ClickOnce para que deshabilite la firma automática de los manifiestos, por lo que no tiene que publicar primero con manifiestos firmados como se muestra en el procedimiento anterior.

  3. Publique la aplicación.