Створення та підпис десктопних програм для Windows
Підпис коду є обов'язковим кроком перед розповсюдженням програм Windows. Без підпису SmartScreen блокує встановлення з попередженням «Невідомий видавець». З дійсним підписом та хорошою репутацією встановлення відбувається без попереджень.
Інструменти побудови
Electron + electron-builder — найпоширеніший стек для крос-платформених програм:
# electron-builder.yml
appId: com.company.appname
productName: AppName
win:
target:
- target: nsis # стандартний установник
- target: zip # портативна версія
icon: build/icon.ico
sign: true
nsis:
oneClick: false
perMachine: true
allowToChangeInstallationDirectory: true
Wix Toolset — для MSI-пакетів (корпоративне розповсюдження через SCCM/Intune):
<!-- product.wxs -->
<Product Id="*" Name="AppName" Version="1.0.0" Manufacturer="Company">
<Package Compressed="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="AppName" />
</Directory>
</Directory>
<Component Id="MainExecutable" Directory="INSTALLFOLDER">
<File Source="AppName.exe" KeyPath="yes" />
</Component>
</Product>
Підпис коду
Сертифікат підпису коду: EV (Extended Validation) — відразу дає хорошу репутацію SmartScreen; OV (Organization Validation) — потребує накопичення репутації.
# Підпис через signtool.exe
signtool sign `
/fd SHA256 `
/tr http://timestamp.digicert.com `
/td SHA256 `
/f certificate.pfx `
/p $env:CERT_PASSWORD `
"dist\AppName-Setup.exe"
# Перевірка підпису
signtool verify /pa "dist\AppName-Setup.exe"
Автоматичний підпис у CI/CD (GitHub Actions)
- name: Sign Windows executable
env:
CERTIFICATE_BASE64: ${{ secrets.WINDOWS_CERTIFICATE_BASE64 }}
CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}
run: |
$cert = [Convert]::FromBase64String($env:CERTIFICATE_BASE64)
[IO.File]::WriteAllBytes("certificate.pfx", $cert)
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" `
sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 `
/f certificate.pfx /p $env:CERTIFICATE_PASSWORD `
"dist\AppName-Setup.exe"
Тривалість
Налаштування побудови та підпису для Windows: 2–3 робочих дні. Отримання сертифіката EV — 3–7 днів від CA (DigiCert, Sectigo).







