Подписывание пакета приложения Windows 10Sign a Windows 10 app package

Подписывание пакета приложения — это обязательный шаг в процессе создания развертываемых пакетов приложений Windows 10.App package signing is a required step in the process of creating a Windows 10 app package that can be deployed. В Windows 10 все приложения должны быть подписаны с помощью допустимого сертификата для подписи кода.Windows 10 requires all applications to be signed with a valid code signing certificate.

Для успешной установки приложения для Windows 10 пакет не только подписывается, но и настраивается как надежный на устройстве.To successfully install a Windows 10 application, the package doesn't just have to be signed but also trusted on the device. Это означает, что сертификат должен быть связан с одним из доверенных корневых сертификатов на устройстве.This means that the certificate has to chain to one of the trusted roots on the device. По умолчанию в Windows 10 настроено доверие к сертификатам от большинства центров сертификации, предоставляющих сертификаты для подписи кода.By default, Windows 10 trusts certificates from most of the certificate authorities that provide code signing certificates.

РазделTopic ОписаниеDescription
Необходимые условия для подписыванияPrerequisites for signing В этом разделе описаны предварительные требования, которые нужно удовлетворить, прежде чем подписывать пакет приложения Windows 10.This section discusses the prerequisites required to sign the Windows 10 app package.
Использование SignToolUsing SignTool В этом разделе описано, как подписать пакет приложения с помощью средства SignTool из пакета SDK для Windows 10.This section discusses how to use SignTool from the Windows 10 SDK to sign the app package.
Подписывание пакета MSIX с помощью подписи Device GuardSign an MSIX package with Device Guard signing В этом разделе описывается, как подписать приложение с помощью подписи Device Guard.This section discusses how to sign your app with Device Guard signing.

Установка меток времениTimestamping

Настоятельно рекомендуется использовать метки времени при подписывании приложения с помощью сертификата.It is highly recommended that Timestamping is used when signing your app with a certificate. Это действие сохраняет подпись, обеспечивая принятие пакета приложений платформой развертывания приложения, даже если срок действия сертификата истек.Timestamping preserves the signature allowing the app package to accepted by app deployment platform even after the certificate has expired. Во время проверки пакета метка времени позволяет проверить подпись пакета с учетом времени подписывания.At the package inspection time, the timestamp allows for the package signature to be validated with respect to the time it was signed. Такие пакеты будут приняты, даже если сертификат недействителен.This allows for packages to be accepted even after the certificate is no longer valid. Пакеты без меток времени будут проверяться с учетом текущего времени и, если сертификат недействителен, Windows не примет такой пакет.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.

Ниже описаны разные сценарии подписывания приложения с использованием меток времени и без них.The following are the different scenarios around app signing with/out timestamping:

Приложение подписано без метки времениApp is signed without timestamping Приложение подписано с меткой времениApp is signed with timestamping
Сертификат действительныйCertificate is valid Приложение будет установлено.App will install Приложение будет установлено.App will install
Сертификат недействительный (срок действия истек)Certificate is invalid(expired) Приложение не будет установлено.App will fail to install Приложение будет установлено, так как подлинность сертификата была проверена при подписывании центром меток времени.App will install as the authenticity of the cert was verified at signing by timestamping authority

Примечание

Если приложение установлено на устройстве, оно будет выполняться даже после истечения срока действия сертификата независимо от того, были ли установлены метки.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.

Режим устройстваDevice mode

Windows 10 позволяет пользователям выбирать следующие режимы работы устройства в настройках приложения:Windows 10 allows users to select the mode in which to run their device on in the Settings app. "Приложения Microsoft Store", "Неопубликованные приложения" и "Режим разработчика".The modes are Microsoft Store apps, Sideload apps, and Developer mode.

Приложения Microsoft Store — это самый безопасный режим, так как он разрешает установку приложений только из Microsoft Store.Microsoft Store apps is the most secure as it only allows the installation of apps from the Microsoft Store. Приложения в Microsoft Store проходят процесс сертификации, гарантирующий, что приложения безопасны для использования.Apps in the Microsoft Store go through certification process to ensure that the apps are safe for use.

Неопубликованные приложения и Режим разработчика — это менее строгие режимы использования приложений, которые были подписаны с помощью других сертификатов, которые являются доверенными и которые связаны с одним из доверенных корневых сертификатов на устройстве.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. Выбирайте режим разработчика, только если вы являетесь разработчиком, который создает или отлаживает приложения для Windows 10.Only select Developer mode if you are a developer and building or debugging Windows 10 apps. См. подробнее о режиме разработчика.More info about Developer mode and what it provides can be found here.