Featured image of post Установка MSIX с использованием самоподписанного сертификата

Установка MSIX с использованием самоподписанного сертификата

Установка MSIX с использованием самоподписанного сертификата

При распространении приложений в Windows использование пакета MSIX удобно, поскольку механизм установки и обновления унифицирован. Однако существует ограничение: для MSIX всегда требуется «подписанный сертификат». Когда вы хотите протестировать приложение, разработанное компанией или частным лицом, могут возникнуть ситуации, когда «покупка коммерческого сертификата подписи кода — это слишком».

Здесь на помощь приходит самоподписанный сертификат (Self-Signed Certificate) . В этой статье описаны шаги по прикреплению самоподписанного сертификата к MSIX и возможности его установки в локальной среде.


1. Создание самоподписанного сертификата

Сначала запустите PowerShell в режиме администратора и выполните следующую команду.

1
2
// Создание самоподписанного сертификата
New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5" -CertStoreLocation Cert:\CurrentUser\My -NotAfter (Get-Date).AddYears(10) -KeyUsage DigitalSignature -FriendlyName "kenjinote"

Здесь создается сертификат для «подписания кода».

  • Его будет легче найти позже, если вы дадите ему понятное имя с помощью -FriendlyName.
  • Вы можете настроить срок действия с помощью -NotAfter. На этот раз мы установили его на 10 лет.

2. Экспорт файла PFX

Экспортируйте созданный сертификат в формате PFX, чтобы его можно было использовать с signtool.

1
2
3
4
// Создание pfx
$cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.FriendlyName -eq "kenjinote" }
$password = ConvertTo-SecureString -String "password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "D:\pfx\cert.pfx" -Password $password

Пароль, установленный в это время (в примере password ), потребуется для последующей операции подписания.


3. Установка самоподписанного сертификата в Доверенные корневые центры сертификации

Созданный сертификат сам по себе не будет пользоваться доверием Windows. Чтобы его установить, необходимо импортировать его из certmgr.msc в [Доверенные корневые центры сертификации] -> [Сертификаты] .

Если вы импортируете экспортированный сертификат ( .cer или .pfx ), он будет рассматриваться как доверенный сертификат на целевом ПК. В результате, даже если вы подпишете MSIX, предупреждение «Ненадежный сертификат» не появится.


4. Подписание установщика (MSIX)

Наконец, используйте созданный сертификат PFX для подписания MSIX. signtool входит в состав Visual Studio и Windows SDK.

1
2
// Подписание установщика
signtool sign /fd SHA256 /f "D:\pfx\cert.pfx" /p "password" "C:\installer\installer.msix"
  • /fd SHA256 указывает алгоритм подписи.
  • Укажите файл PFX с помощью /f и передайте пароль с помощью /p.
  • Наконец, укажите путь к файлу MSIX.
  • Если путь к signtool не найден, укажите полный путь. В моей среде он находился в следующем месте.
1
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\microsoft.windows.sdk.buildtools\10.0.26100.1742\bin\10.0.26100.0\x64\signtool.exe"

На этом подписание завершено, и MSIX, который можно установить на целевой ПК, будет готов.


Заключение

  • Создайте самоподписанный сертификат с помощью New-SelfSignedCertificate
  • Экспортируйте PFX с помощью Export-PfxCertificate
  • Установите сертификат в Доверенные корневые центры сертификации
  • Подпишите MSIX с помощью signtool

Поняв этот процесс, вы сможете проверить работу и протестировать распространение в локальной среде без покупки коммерческого сертификата. Конечно, для реального коммерческого распространения требуется сертификат, выданный центром сертификации, но этот метод очень полезен на этапе разработки и проверки.


👉 В этот раз мы использовали installer.msix в качестве примера, но ту же процедуру можно применить и к приложениям, которые вы создали сами.


comments powered by Disqus
Создано при помощи Hugo
Тема Stack, дизайн Jimmy