Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпись пакета приложения является обязательным шагом в процессе создания пакета MSIX, который можно развернуть. Windows требуется, чтобы пакеты MSIX были подписаны с помощью допустимого сертификата подписи кода.
Чтобы успешно установить приложение Windows, пакет не только должен быть подписан, но и доверенный на устройстве. Это означает, что сертификат должен быть связан с одним из доверенных корневых каталогов на устройстве. По умолчанию Windows доверяет сертификатам из большинства центров сертификации, которые предоставляют сертификаты подписывания кода.
Кроме того, если вы создаете пакет MSIX, нет необходимости подписывать все пакеты в пакете по отдельности. Подписывается только пакет; Подпись охватывает пакеты внутри пакета.
Параметры подписывания
Выберите подход для подписывания в зависимости от вашего сценария:
| Сценарий | Опция | Cost |
|---|---|---|
| Разработка и локальное тестирование | Самоподписанный сертификат | Бесплатно |
| Распределение продукции (рекомендуется) | Azure подпись артефактов (прежнее название — Доверенная подпись) | Базовый: ~$10/месяц |
| Распределение продукции (альтернатива) | Сертификат для подписания кода OV из Центра сертификации | $300–500/год |
| распределение Microsoft Store | Подписан Магазином при отправке | Бесплатно |
Замечание
Azure Подписывание артефактов (прежнее название — Доверенное подписывание) — это служба подписывания управляемого кода Майкрософт и рекомендуется для использования в рабочей среде для подписывания MSIX. Ключевые характеристики:
- Репутация, основанная на удостоверении: репутация связана с проверенной идентификацией издателя, а не с конкретным сертификатом, и поэтому накапливается на всех этапах сборки. Однако, как и при распространении не через Магазин, новые приложения по-прежнему будут отображать предупреждения SmartScreen до тех пор, пока история загрузок не наберется. Это обычно занимает несколько недель. См. репутацию SmartScreen для разработчиков приложений Windows.
- Короткие сертификаты: новый сертификат выдается ежедневно, и каждый сертификат остается действительным около 3 дней, что позволяет при необходимости точно отменить срок действия.
-
CI/CD ready: поддерживает GitHub Actions (
azure/trusted-signing-action) и Azure DevOps из коробки.
Право на сертификаты общественного доверия: доступно организациям в США, Канаде, Европейском союзе и Соединенном Королевстве, а также для отдельных разработчиков в США и Канаде. Организации должны иметь проверяемую налоговую историю в течение трех или более лет. См. важные сведения о проверке удостоверений.
Signing с SignTool требует дополнительной настройки: SignTool работает для подписывания артефактов только при использовании клиентских средств подписывания артефактов, которые включают необходимый подключаемый модуль dlib и .NET 8 среду выполнения. Кроме того, необходимо предоставить файл с конечной точкой для вашей учетной записи metadata.json и профилем сертификата. Стандартные вызовы Windows SDK SignTool в одиночку не будут работать с подписанием артефактов. Самый простой способ установки:
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
См. статью "Настройка signTool с помощью подписывания артефактов " для завершения настройки.
AzureSignTool — это отдельное средство сообщества для подписывания сертификатов, хранящихся в Azure Key Vault. Он не поддерживает подписывание артефактов — это две разные службы. См. информацию о подписании в Visual Studio с использованием Azure Key Vault в разделе Подписание пакетов с помощью Azure Key Vault.
Интерфейс командной строки WinApp
Интерфейс командной строки WinApp предоставляет удобные команды для подписывания разработки:
-
winapp cert generate— создание самозаверяющего сертификата для разработки -
winapp sign— подписать пакет MSIX или исполняемый файл с помощью сертификата -
winapp tool signtool— получайте доступ к SignTool непосредственно из SDK Windows
Темы подписания
| Тема | Описание |
|---|---|
| Предварительные условия для подписания | Предварительные условия для подписи пакета приложения. |
| Использование SignTool | Как использовать SignTool из пакета SDK Windows для подписи пакета приложения. |
| Подписывайте пакеты с помощью Azure Key Vault | Как подписать пакеты с помощью сертификата, хранящегося в Azure Key Vault из Visual Studio. |
| Подписание пакета MSIX с помощью подписи Device Guard | Как подписать приложение с помощью подписи Device Guard. |
| Создание неподписанных пакетов для тестирования | Как создать неподписанный пакет MSIX для тестирования. |
| Azure подписывание артефактов | Управляемая служба подписи Майкрософт (ранее называвшаяся Trusted Signing) для производственных пакетов MSIX. |
Установка меток времени
Настоятельно рекомендуется использовать метки времени при подписании приложения с помощью сертификата. Метка времени сохраняет подпись, позволяя платформе развертывания приложения принимать пакет приложения даже после истечения срока действия сертификата. Во время проверки посылки временная метка позволяет проверить подпись посылки по отношению к моменту ее подписания. Это позволяет принимать пакеты даже после того, как сертификат больше не действителен. Пакеты, которые не имеют метки времени, будут оцениваться в течение текущего времени, и если сертификат больше не действителен, Windows не будет принимать пакет.
Ниже приведены различные сценарии входа в приложение без меток времени и без них.
| Сценарий | Приложение подписывается без использования временных меток | Приложение подписано с использованием меток времени |
|---|---|---|
| Сертификат действителен | Приложение будет установлено | Приложение будет установлено |
| Сертификат недействителен (истек) | Приложение не будет установлено | Приложение будет установлено после того, как подлинность сертификата была проверена при подписании с помощью центра отметок времени |
Замечание
Если приложение успешно установлено на устройстве, оно будет продолжать работать даже после истечения срока действия сертификата, независимо от того, есть ли у него временная метка или нет.
Обеспечение целостности пакета
Помимо обеспечения установки на устройстве только доверенных приложений, дополнительное преимущество подписывания пакета MSIX заключается в том, что он позволяет Windows обеспечить целостность пакета и его содержимое после его развертывания на устройстве. Привязав к AppxBlockMap.xml и AppxSignature.p7x в подписанном пакете, Windows может выполнять проверки целостности пакета и его содержимого во время выполнения, а также во время проверки Windows Defender. Если пакет считается измененным, Windows блокирует запуск приложения и запускает рабочий процесс исправления, чтобы получить исправленный или переустановленный пакет. Для пакетов, не распределенных через Microsoft Store, целостность пакетов применяется, если пакет объявляет элемент uap10:PackageIntegrity и развертывается в Windows 2004 и более поздних сборках. Ниже приведен пример объявления о принудительном применении целостности пакета в 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>
Режим устройства
Windows 10 позволяет пользователям выбирать режим запуска устройства в приложении "Параметры". Режимы: приложения из Microsoft Store, приложения для загрузки из сторонних источников и режим разработчика.
Microsoft Store приложения является наиболее безопасным, так как это позволяет устанавливать приложения только из Microsoft Store. Приложения в Microsoft Store проходят сертификацию, чтобы обеспечить безопасность приложений для использования.
Загрузки приложений из сторонних источников и режим разработчика более разрешительными к приложениям, подписанным другими сертификатами, при условии, что эти сертификаты являются доверенными и связаны с одним из доверенных корневых сертификатов на устройстве. Выберите режим разработчика только в том случае, если вы являетесь разработчиком и занимаетесь созданием или отладкой приложений для Windows 10. Более подробную информацию о режиме разработчика и его возможностях можно найти здесь.
Замечание
Начиная с Windows 10 версии 2004, параметр боковой загрузки включен по умолчанию. В результате режим разработчика теперь является переключателем. Предприятия по-прежнему могут отключить установку сторонних приложений согласно политике.