Signierung einer App für internes Netz in Firmen, Schulen, etc.

Wir wollen eine App signieren und im Intranet zur Verfügung stellen.
Für Signierung unsere App nutzen wir auch das Signierung-Programm signtool. Der Unterschied liegt daran, dass wir keine Zertifikate kaufen, sondern selbst erstellen und selbst bestätigen. Um die Zertifikate zu erstellen, brauchen wir entsprechende Tools. Wir installieren diese Tools und nutzen dann Befehle in CMD Fenster, um die Zertifikate zu erstellen und zu bestätigen. Wir können dafür eine VM verwenden. Die zu installierende Tools sind vielleicht nicht die neuste, außerdem haben wir eine VM nur für die Zertifikate.

Punkt
Es wird eine VM auf Basis von Windows 10 und Win SDK 7 gebraucht.
  • Windows 10 in eine VM installieren.
  • Im Browser nach WinSDK 7 suchen.
  • Eine Datei winsdk_web.exe (Microsoft Windows SDK for Windows 7 and .NET Framework 4) wird heruntergeladen
  • winsdk_web.exe starten und ausführen. Nach der Installation haben wir die benötigte makecert.exe Tool. Wir können den Pfad in Path unter Umgebungsvariable eintragen.
Punkt
Wir erstellen die benötigte Zertifikate. Die Reihe nach, CA-Zertifikat, Entwickler-Zertifikat und dann
das pfx-Zertifikat. Das pfx Zertifikat brauchen wir für die Signierung.

Punkt
Zuerst erstelllen wir CA Zertifikat. Dieses Zertifikat werden wir dann auf allen Geräten importieren oder auf eine andere Weise verteilen. Wir öffnen CMD-Fenster und erstellen ein Ordner z.B. c:\ca-cert oder einfach in Windows Explorer den Ordner erstellen

 

c:\ca-cert> makecert -r -pe -n "CN=MonoCA" -ss CA -a sha256 -cy authority -sky signature -sv MonoCA.pvk MonoCA.cer

Es kommt ein Fenster, um ein Passwort einzutragen. Wir können das machen und das Passwort sich gut merken bzw. klicken Sie auf kein Passwort.

Punkt
Wir erstellen jetzt, nennen wir es Entwickler Zertifikat. Hier kommt auch das Fenster für die Passworteingabe.

 

C:\ca-cert> makecert -pe -n "CN=MonoDEV" -a sha256 -cy end -sky signature -ic MonoCA.cer -iv MonoCA.pvk -sv MonoDEV.pvk MonoDEV.cer
Punkt
Jetzt können wir das pfx Zerifikatdatei erstellen, die Datei werden wir für die Signierung unsere Apps brauchen.

 

C:\ca-cert> pvk2pfx -pvk MonoDEV.pvk -spc MonoDEV.cer -pfx MonoDev.pfx
Punkt
Wir haben alle benötigte Zertifikate und auch unsere eigene App in einer Programmiersprache mit den Namen Install-VS.exe erstellt. Mit dem folgenden Befehl können wir unsere App Signieren.

 

C:\ca-cert>signtool sign /v /f MonoDEV.pfx /t http://timestamp.digicert.com /fd SHA256 c:\ca-cert\Install-VS.exe

 

Wenn wir und die Eigenschaften der Datei Install-VS.exe anschauen, werden wir sehen, dass das Programm signiert ist. Wir haben den Reiter "Digitale Signaturen" und unter Signaturliste sehen wir unsere Signatur MonoDEV.

Wir haben eine Installationsdatei signiert. Wenn wir die Datei jetzt starten, kommt zuerst das Fenster von Benutzerkontensteuerung. In dem Fenster unter "Herausgeben" steht Unbekannt. Um das zu ändern, müssen wir unseres CA-Zertifikat MonoCA.cer in "Vertrauenswürdige Stammzertifizierungsstellen" importieren. Das CA-Zertifikat sollten wir auf jedes Gerät in der Domäne verteilen, um den gewünschten Effekt bei der Installation des Programmes zu erzielen. Das Programm sollte von einem "Verifizierten Herausgeber" stammen. In unserem Fall von MonoDEV.