Code-Signing-Zertifikate für Sideloading von Windows 8 Store Anwendungen

14. September 2012

Zur Erstellung von “Windows Store”-Anwendungen muss die erstellte Anwendung signiert werden. Dafür wird ein Code-Signing-Zertifikat benötigt, welches im Falle des Sideloadings von Applikationen (Bereitstellung von eigenen Applikationen innerhalb eines Unternehmens, ohne den Windows 8 App-Store zu benutzen) auch ein eigenes Zertifikat sein kann. Dieses kann durch die Zertifikatsautorität des Unternehmens ausgestellt werden. Die Vorgehensweise wird z.B. hier (von Microsoft) ausführlich beschrieben.

Was Microsoft dort aber verschweigt ist, dass das zu verwendende Zertifikat auch eine Mindestschlüssellänge aufweisen muss – wir verwenden aktuell 4096 Bit. Wie kann ich das aber bewirken, wenn diese Option im Dialog zum Anfordern des Zertifikats ausgegraut ist und aufgrund des Alters des Zertifikat-Templates dieses noch mit 1024 Bit ausgestellt wird?

ReuquestProperties

Die Schlüssellänge wird in diesem Fall durch Template das für die Zertifikats-Anforderung verwendet wird bestimmt – und das liegt auf der Zertifikats-Autorität. In der Server-Verwaltung der Zertifikats-Autorität kann man die Templates verwalten:

CertAuthority01

Und in dieser Verwaltung ein neues Template durch Duplizieren des ursprünglichen “Code Signing”-Templates ein neues Template anlegen:

CertAuthority02

Das 2008’ter Format bietet mehr Möglichkeiten.

CertAuthority03

Hier lässt sich die Schlüssellänge (und auch der Hash-Algorithmus) anpassen:

CertAuthority04

Und auch die “Basic Constraints” per Default einschalten (das müsste sonst im Dialog der Zertifikats-Anforderung geschehen).

CertAuthority05

Nach der Bestätigung mit der Constraints und Bestätigung des Duplizierungs-Dialogs mit OK muss dieses neue Template allerdings auch noch “aktiviert” (bereitgestellt) werden. Dazu verwendet man wieder die Server-Verwaltung und kann über das Kontext-Menü den entsprechenden Dialog aufrufen:

CertAuthority06

CertAuthority07

Nach dem OK-Klick steht das neue Template bereit und kann für die Generierung von Code-Signing-Zertifikaten verwendet werden.

Diese Code-Signing-Zertifikate sind dann natürlich nicht durch eine öffentliche CA bestätigt, sondern nur innerhalb des Active-Directory gültig – aber gerade für die Bereitstellung von Metro-Apps (im Visual Studio heißen sie “Windows Store App”) innerhalb von Unternehmen sind diese Zertifikate optimal. Für Geräte, die nicht in das AD integriert sind, kann auch das Root-Zertifikat der CA in den Zertifikats-Store dieser Geräte importiert werden – dann wird auch diesen Code-Signing-Zertifikaten vertraut.