Forum: PC-Programmierung MSIs mit dem WiX Toolset signieren


von Max G. (l0wside) Benutzerseite


Lesenswert?

Hat sich hier schon mal jemand mit dem "Herausgeber: Unbekannt"-Problem 
bei Windows-Installern herumgeschlagen?
Ich habe eine Applikation, die Qt5 und MSVC-Runtime braucht. Mit dem 
WiX-Toolset habe ich es auch geschafft, dafür einen Installer zu 
stricken - erst erzeuge ich eine MSI mit .exe und Qt, dann packe ich in 
einem zweiten Schritt das MSVC-MSI dazu und erzeuge eine installer.exe.
Allerdings liefert diese bei der Installation unter Windows 10 immer 
"Herausgeber: Unbekannt". Auch wenn ich nur die im ersten Schritt 
erzeugte MSI nehme, habe ich die gleiche Meldung.

Ich habe jetzt ein paar Stunden damit verbracht, herauszufinden, wie ich 
das loswerde. Die MSI und nachher das Bundle müssen signiert werden, 
dafür gibt es signtool.exe - so weit war ich schnell. Dann ging das 
Elend los.

Ich habe mir selbst ein Zertifikat erzeugt, das signtool auch 
akzeptiert. Ich signiere die MSI mit
1
"c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool" sign  /f zertifikat.pfx /d "Mein erstes Programm" /t http://timestamp.verisign.com/scripts/timstamp.dll /v "installer.msi"
Dauert eine Weile, läuft aber durch (das Zertifikat hat kein Passwort, 
sonst bräuchte man noch /p).

Beim nächsten Installieren habe ich aber trotzdem wieder "Herausgeber: 
Unbekannt".

Hat jemand das mit einem vergleichbaren Setup schon mal durchgespielt? 
Meinetwegen auch mit dem Nullsoft Installer o.ä.? Oder sonst einen 
sachdienlichen Hinweis?
Die belegbare Aussage "geht nicht mit selbstsigniertem Zertifikat" 
würde mir auch schon reichen. Dann muss ich entweder Geld investieren 
oder Nutzer trösten.


Etwas genervte Grüße,

Max

von steckersammler (Gast)


Lesenswert?

Ein selbstsigniertes Zertifikat ist wertlos.
Denn um das zu erkennen, muss Windows bzw. der Benutzer es zuerst in 
seinen Zertifikatsspeicher hinzufügen.

Das kann man selbst mal zum Testen machen, aber zum Verteilen ist das 
keine Lösung.
Denn du müsstest deinen Benutzern eine Anleitung mitgeben, wie sie dein 
Zertifikat per Hand installieren, damit nachher dein Installer als 
signiert und ok angezeigt wird.
Das wäre aber bloß Fassade.

Denn natürlich ist das auch ein Sicherheitsaspekt, denn bei einem 
signierten Setup werden Veränderungen erkannt und das Signatur ist 
ungültig.
Wenn da jedes selbst erzeugte Zertifikat funktionieren würde, würde der 
böse Hacker es einfach mit seinem selbst gebauten Zertifikat neu 
signieren und keiner würde was merken.
Deshalb werden von Windows nur Zertifikate anerkannt, die von einem der 
"großen" Anbieter ausgestellt bzw. signiert wurden (Chain of trust).

MfG Stefan

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Wie bereits erwähnt, geht ein selbst signieren nicht.
PSW hat Code-Signing Zertifikate zu überschaubaren Preisen:
https://www.psw-group.de/code-signing/

von Max G. (l0wside) Benutzerseite


Lesenswert?

Ja, danke. Auf lange Sicht werde ich wohl nicht drum herum kommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.