Inno Setup, skriptbasiertes Installationsprogramm
Inno Setup ist ein skriptbasiertes Open-Souce-Programm. Mit dem Programm sind wir in der Lage auf einfache Weise Installationsroutinen zu erstellen. Inno Setup ist kostenlos. Das was wir brauchen, ist das Programm selbst und ein Texteditor. Im Internet findet man sehr gute Dokumentation.
Diese Artikel beschäftigt sich nur mit der Signierung der eigenen Programme als auch der Signierung der Installationsprogramme.
Um praktisch das zu realisieren brauchen wir,
- Inno Setup Programm. das kann man aus dem Internet herunterladen
- ein Programm das in einer Programmiersprache erstellt ist
- Ein pfx-Zertifikat. Sehe Public Code Signing bzw. Private Code Signing
- Ein Programm zum Signieren z.B. signtool. Wie man das Tool installiert finden Sie im Artikel "Public Code Signing"
Um die Signierung zu testen stelle ich HIER ein pfx-Testzertifikat und CA-Testzertifikat zur Verfügung. Sie selbst benötigen auf Ihrem Windows Gerät das Programm Inno Setup und signtool.
Wie man das macht ist in den Artikel Public Code Signing und Private Code Signing beschrieben.
AppName=My Program
AppVersion=1.5
WizardStyle=modern
DefaultDirName={autopf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
; OutputDir=userdocs:Inno Setup Examples Output
OutputDir=C:\Install_Output
OutputBaseFilename=Install_MyProg
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Als Beispiel wird auf folgende Weise in CMD Fenster unser Programm Install_MyProg signiert. Wenn nötig bitte entsprechende Pfade zu signtool und TestDEV.pfx eintragen
In unserem Sign Tools Fenter von Inno Setup machen wir ein ähnlicher Eintrag. So wie schon angesprochen war, die Ausgabe macht Inno Setup selbst, abhängig von den definierten Informationen wie OutputDir und OutputBaseFilename
[Setup]
AppName=My Program
AppVersion=1.5
WizardStyle=modern
DefaultDirName={autopf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
; OutputDir=userdocs:Inno Setup Examples Output
OutputDir=C:\Install_Output
OutputBaseFilename=Install_MyProg
SignTool=mySign
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Wenn wir die Zertifikate selbst erstellt haben und selbst bestätigt haben, sollten wir noch auf jedem Gerät in der Domäne das CA Zertifikat in "Vertrauenswürdige Stammzertifizierungsstellen" eintragen, dann sehen wir auch den "Verifizierten Herausgeber".
- signtools ist auf dem Rechner installiert
- pfx-Zertifikatdatei begindet sich im gleichen Ordner wie unsere ausführbare Datei
<PfadZuSingtools>\signtool sign /v /f <PfadZuCertDatei>\TestDEV.pfx /t http://timestamp.sectigo.com /fd SHA256 <PfadZuEXE>\myProg.exe
pause