Firma de un paquete de la aplicación de Windows 10Sign a Windows 10 app package

La firma del paquete de la aplicación es un paso necesario en el proceso de creación de un paquete de la aplicación de Windows 10 que se puede implementar.App package signing is a required step in the process of creating a Windows 10 app package that can be deployed. Windows 10 requiere que todas las aplicaciones estén firmadas con un certificado de firma de código válido.Windows 10 requires all applications to be signed with a valid code signing certificate.

Para instalar correctamente una aplicación de Windows 10, el paquete no solo tiene que estar firmado, sino también ser de confianza en el dispositivo.To successfully install a Windows 10 application, the package doesn't just have to be signed but also trusted on the device. Esto significa que el certificado tiene que encadenarse a una de las raíces de confianza en el dispositivo.This means that the certificate has to chain to one of the trusted roots on the device. De forma predeterminada, Windows 10 confía en los certificados de la mayoría de las entidades de certificación que proporcionan los certificados de firma de código.By default, Windows 10 trusts certificates from most of the certificate authorities that provide code signing certificates.

TemaTopic DescripciónDescription
Requisitos previos para la firmaPrerequisites for signing En esta sección se describen los requisitos previos necesarios para firmar el paquete de la aplicación de Windows 10.This section discusses the prerequisites required to sign the Windows 10 app package.
Uso de SignToolUsing SignTool En esta sección se describe cómo usar SignTool, del SDK de Windows 10, para firmar el paquete de la aplicación.This section discusses how to use SignTool from the Windows 10 SDK to sign the app package.
Firmar un paquete MSIX con la firma de Device GuardSign an MSIX package with Device Guard signing En esta sección se explica cómo firmar la aplicación con la firma de Device Guard.This section discusses how to sign your app with Device Guard signing.

Marca de tiempoTimestamping

Se recomienda encarecidamente que se use la marca de tiempo al firmar la aplicación con un certificado.It is highly recommended that Timestamping is used when signing your app with a certificate. La marca de tiempo conserva la firma que permite que la plataforma de implementación de la aplicación acepte el paquete de la aplicación, incluso después de que el certificado haya expirado.Timestamping preserves the signature allowing the app package to accepted by app deployment platform even after the certificate has expired. Al inspeccionar el paquete, la marca de tiempo permite que se valide la firma del paquete en relación a la hora en que se firmó.At the package inspection time, the timestamp allows for the package signature to be validated with respect to the time it was signed. Esto permite que los paquetes se acepten incluso después de que el certificado deje de ser válido.This allows for packages to be accepted even after the certificate is no longer valid. Los paquetes que no tienen ninguna marca de tiempo se evaluarán con la hora actual y si el certificado ya no es válido, Windows no los aceptará.Packages that are not timestamped will be evaluated against the current time and if the certificate is no longer valid, Windows will not accept the package.

Estos son los diferentes escenarios de la firma de la aplicación con o sin marca de tiempo:The following are the different scenarios around app signing with/out timestamping:

Aplicación firmada sin marca de tiempoApp is signed without timestamping Aplicación firmada con marca de tiempoApp is signed with timestamping
El certificado es válido.Certificate is valid La aplicación se instalará.App will install La aplicación se instalará.App will install
El certificado no es válido (ha expirado).Certificate is invalid(expired) Se producirá un error al instalar la aplicación.App will fail to install La aplicación se instalará, ya que la autenticidad del certificado se verificó cuando la autoridad de marca de tiempo realizó la firma.App will install as the authenticity of the cert was verified at signing by timestamping authority

Nota

Si la aplicación se instala correctamente en un dispositivo, continuará ejecutándose incluso después de la expiración del certificado, independientemente de que tenga una marca de tiempo o no.If the app is successfully installed on a device, it will continue to run even after the certificate expiry regardless of it being timestamped or not.

Modo del dispositivoDevice mode

Windows 10 permite a los usuarios seleccionar el modo en que se ejecuta su dispositivo en la aplicación de configuración.Windows 10 allows users to select the mode in which to run their device on in the Settings app. Los modos son Aplicaciones de Microsoft Store, Transferir localmente aplicaciones y Desarrollador.The modes are Microsoft Store apps, Sideload apps, and Developer mode.

Aplicaciones de Microsoft Store es la forma más segura, ya que solo permite la instalación de aplicaciones de Microsoft Store.Microsoft Store apps is the most secure as it only allows the installation of apps from the Microsoft Store. Las aplicaciones de Microsoft Store pasan por un proceso de certificación para asegurarse de que el uso de las aplicaciones sea seguro.Apps in the Microsoft Store go through certification process to ensure that the apps are safe for use.

Transferir localmente aplicaciones y el modo Desarrollador son más permisivos con las aplicaciones que están firmadas por otros certificados, siempre y cuando dichos certificados sean de confianza y se encadenen a una de las raíces de confianza en el dispositivo.Sideload apps and Developer mode are more permissive of apps that are signed by other certificates as long as those certificates are trusted and chain to one of the trusted roots on the device. Selecciona el modo Desarrollador solo si eres un desarrollador y compilas o depuras aplicaciones de Windows 10.Only select Developer mode if you are a developer and building or debugging Windows 10 apps. Puedes encontrar más información sobre el modo Desarrollador y lo que proporciona aquí.More info about Developer mode and what it provides can be found here.