Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La firma de paquetes de aplicación es un paso necesario en el proceso de creación de un paquete MSIX que se puede implementar. Windows requiere que los paquetes MSIX se firmen con un certificado de firma de código válido.
Para instalar correctamente una aplicación de Windows, el paquete no solo se debe firmar, sino también ser confiable en el dispositivo. Esto significa que el certificado tiene que encadenarse a una de las raíces de confianza en el dispositivo. De forma predeterminada, Windows confía en certificados de la mayoría de las entidades de certificación que proporcionan certificados de firma de código.
Además, si va a crear un paquete MSIX, no es necesario firmar todos los paquetes del lote individualmente. Solo es necesario firmar el lote; la firma cubre los paquetes dentro del lote.
Opciones de firma
Elija un enfoque de firma en función de su escenario:
| Escenario | Opción | Costo |
|---|---|---|
| Desarrollo y pruebas locales | Certificado autofirmado | Gratuito |
| Distribución de producción (recomendado) | Azure Artifact Signing (anteriormente Trusted Signing) | Básico: ~$10/mes |
| Distribución de producción (alternativa) | Certificado de firma de código OV de una Autoridad de Certificación | $300–500/año |
| distribución de Microsoft Store | Firmado por la Tienda al ser enviado | Gratuito |
Nota:
Firma de artefactos de Azure (anteriormente conocida como 'Firma de Confianza') es el servicio de firma de código administrado de Microsoft y es la opción recomendada para la firma MSIX de producción. Características clave:
- Reputación basada en la identidad: la reputación está vinculada a tu identidad de editor verificada en lugar de a un certificado específico, por lo que se acumula a lo largo de las compilaciones. Sin embargo, al igual que todas las distribuciones que no son de la Tienda, las nuevas aplicaciones seguirán mostrando advertencias de SmartScreen hasta que haya suficientes compilaciones del historial de descargas, lo que suele tardar varias semanas. Consulta la reputación de SmartScreen para los desarrolladores de aplicaciones de Windows.
- Certificados de corta duración: se emite un nuevo certificado diariamente y cada certificado permanece válido durante unos 3 días, lo que permite la revocación precisa del tiempo si es necesario.
-
Preparado para CI/CD: soporta Acciones de GitHub (
azure/trusted-signing-action) y Azure DevOps de manera inmediata.
Idoneidad para los certificados de confianza pública: disponible para las organizaciones de Estados Unidos, Canadá, la Unión Europea y el Reino Unido, así como para desarrolladores individuales de Estados Unidos y Canadá. Las organizaciones deben tener un historial fiscal verificable de tres o más años. Consulte Información importante para la validación de identidades.
La firma con SignTool requiere una configuración adicional: SignTool funciona con la firma de artefactos solo cuando se utilizan las herramientas cliente para la firma de artefactos, que incluyen el complemento dlib necesario y el entorno de ejecución de .NET 8. También debe proporcionar un archivo metadata.json con el punto de conexión de la cuenta y el perfil de certificado. Una invocación estándar del "SignTool" del SDK de Windows por sí sola no funcionará con la firma de artefactos. La instalación más sencilla es:
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
Consulte Set up SignTool with Artifact Signing (Configurar SignTool con la firma de artefactos) para obtener la configuración completa.
AzureSignTool es una herramienta de comunidad independiente para firmar con certificados almacenados en Azure Key Vault. No admite la firma de artefactos: los dos son servicios distintos. Para la firma basada en Azure Key Vault en Visual Studio, consulte Sign packages with Azure Key Vault.
WinApp CLI
La CLI de WinApp proporciona comandos prácticos para la firma de desarrollo:
-
winapp cert generate: cree un certificado autofirmado para el desarrollo. -
winapp sign: firma de un paquete MSIX o un archivo ejecutable con un certificado -
winapp tool signtool: acceda a SignTool directamente desde el SDK de Windows
Temas de firma
| Tema | Descripción |
|---|---|
| Requisitos previos para la firma | Requisitos previos necesarios para firmar un paquete de aplicación. |
| Uso de SignTool | Cómo usar SignTool desde el SDK de Windows para firmar un paquete de aplicación. |
| Firmar paquetes con Azure Key Vault | Cómo firmar paquetes mediante un certificado almacenado en Azure Key Vault desde Visual Studio. |
| Firmar un paquete MSIX con la firma de Device Guard | Cómo firmar la aplicación con la firma de Device Guard. |
| Creación de paquetes sin firmar para pruebas | Cómo crear un paquete MSIX sin firmar para las pruebas. |
| Firma de artefactos de Azure | El servicio de firma administrada de Microsoft (anteriormente Firma De Confianza) para paquetes MSIX de producción. |
Marca de tiempo
Se recomienda encarecidamente usar el sellado de tiempo para firmar la aplicación con un certificado. La marca de tiempo conserva la firma que permite que la plataforma de implementación de aplicaciones acepte el paquete de la aplicación incluso después de que el certificado haya expirado. En el momento de la inspección del paquete, la marca de tiempo permite validar la firma del paquete con respecto al momento en que se firmó. Esto permite que los paquetes se acepten incluso después de que el certificado ya no sea válido. Los paquetes que no tienen marcas de tiempo se evaluarán con la hora actual y, si el certificado ya no es válido, Windows no aceptará el paquete.
A continuación se muestran los distintos escenarios en torno a la firma de aplicaciones con o sin sellado de tiempo:
| Escenario | La aplicación está firmada sin marcas de tiempo | La aplicación está firmada con marcas de tiempo |
|---|---|---|
| El certificado es válido | La aplicación se instalará | La aplicación se instalará |
| El certificado no es válido (expirado) | La aplicación no se instalará | La aplicación se instalará, ya que la autenticidad del certificado se verificó cuando la autoridad de marca de tiempo realizó la firma |
Nota:
Si la aplicación se instala correctamente en un dispositivo, seguirá ejecutándose incluso después de que expire el certificado, independientemente de su marca de tiempo o no.
Cumplimiento de la integridad del paquete
Además de garantizar que solo se instalan aplicaciones de confianza en un dispositivo, una ventaja adicional de firmar un paquete MSIX es que permite que Windows apliquen la integridad del paquete y su contenido después de implementarlo en un dispositivo. Al encadenar al AppxBlockMap.xml y AppxSignature.p7x en un paquete firmado, Windows puede realizar comprobaciones de validación sobre la integridad de un paquete y su contenido en el tiempo de ejecución, y durante las exploraciones de Windows Defender. Si se considera que se manipula un paquete Windows bloqueará el inicio de la aplicación e iniciará un flujo de trabajo de corrección para que el paquete se repare o vuelva a instalar. En el caso de los paquetes que no se distribuyen a través del Microsoft Store, se aplica la integridad del paquete si el paquete declara el elemento uap10:PackageIntegrity y se implementa en Windows 2004 y compilaciones posteriores. A continuación se muestra un ejemplo de declaración de cumplimiento de la integridad del paquete en el AppxManifest.xml:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
IgnorableNamespaces="uap10">
...
<Properties>
<uap10:PackageIntegrity>
<uap10:Content Enforcement="on" />
</uap10:PackageIntegrity>
</Properties>
...
</Package>
Modo de dispositivo
Windows 10 permite a los usuarios seleccionar el modo en el que ejecutar su dispositivo en la aplicación Configuración. Los modos son aplicaciones de Microsoft Store, aplicaciones sideload y modo desarrollador.
Microsoft Store aplicaciones es la más segura, ya que solo permite la instalación de aplicaciones desde el Microsoft Store. Las aplicaciones del Microsoft Store pasan por el proceso de certificación para asegurarse de que las aplicaciones son seguras para su uso.
Cargar aplicaciones de manera externa y el modo de desarrollador son más permisivos con aplicaciones firmadas por otros certificados, siempre que dichos certificados sean de confianza y encadenen a una de las raíces de confianza del dispositivo. Seleccione solo el modo de desarrollador si es desarrollador y compila o depura Windows 10 aplicaciones. Aquí puede encontrar más información sobre el modo de desarrollador y lo que proporciona.
Nota:
A partir de Windows 10 versión 2004, la opción Sideload está activada de forma predeterminada. Como resultado, el modo de desarrollador ahora es un interruptor. Las empresas todavía pueden desactivar la instalación de prueba a través de la directiva.