MSIX-Dateien erstellen

Einleitung

Das MSIX-Format ist ein Windows-App-Paketformat, das zum Erstellen und Verteilen von Anwendungen in Windows 10/11 verwendet wird. Diese MSIX-Dateien sind in der Regel nicht über einen einfachen Download zu beziehen, da sie vor der Installation auf Windows-Geräten mit einem Zertifikat versehen und neu “gepackt” werden müssen.

MSIX Packaging Tool

Für die Erstellung von MSIX-Dateien wird das MSIX Packaging Tool benötigt, das aus dem Microsoft Store → heruntergeladen und auf einem Windows-Gerät installiert werden kann.

MSIX Packaging Tool

Zertifikatserstellung

Im nächsten Schritt muss ein Zertifikat erstellt werden. Dies kann bequem über die Powershell durchgeführt werden. Ändern Sie hierzu gegebenenfalls den Namen des Zertifikats und/oder das Passwort.

    # Generiere ein neues selbst signiertes Zertifikat mit dem Betreff 'CN=Relution', dem Schlüsselalgorithmus RSA,
    # der Schlüssellänge 2048, der Schlüsselnutzung DigitalSignature und dem Typ CodeSigningCert und speichere es
    # in dem persönlichen Zertifikatsspeicher des aktuellen Benutzers
    $Newcert = New-SelfSignedCertificate -Subject 'CN=Relution' -KeyAlgorithm RSA -KeyLength 2048 -KeyUsage DigitalSignature -Type CodeSigningCert     -CertStoreLocation Cert:\CurrentUser\My

    # Hole den Thumbprint des neu generierten Zertifikats
    $trumbprint = $Newcert.Thumbprint

    # Hole das Zertifikatsobjekt aus dem Speicher anhand seines Thumbprints
    $cert = (Get-ChildItem -Path cert:\CurrentUser\My\$trumbprint)

    # Überprüfe, ob das Zertifikat erfolgreich abgerufen wurde
    if($cert -ne $null){
      # Konvertiere den Klartext-Passwortstring in einen sicheren String
      $Secure_String_Pwd = ConvertTo-SecureString "Passw0rd" -AsPlainText -Force

      # Exportiere das Zertifikat in eine PKCS#12-Datei auf dem Desktop des Benutzers
      Export-PfxCertificate -Cert $cert -FilePath $env:USERPROFILE\desktop\MSIXZertifikat.pfx -Password $Secure_String_Pwd

      # Entferne das Zertifikat aus dem Speicher
      Remove-Item cert:\CurrentUser\My\$trumbprint
    }

Das erstellte Zertifikat muss auf allen Windows 10/11-Geräten, auf denen MSIX-Dateien installiert werden sollen, in der Kategorie Vertrauenswürdige Stammzertifizierungsstellen gespeichert werden. Dies kann entweder mit Relution über die Richtlinienkonfiguration Zertifikate oder manuell direkt auf den Geräten durchgeführt werden. Der Passwort String im Beispiel lautet Passw0rd. Um das Zertifikat manuell hinzuzufügen, starten Sie die Zertifikatsverwaltung Computerzertifikate verwalten als Administrator:in.

MSIX Packaging Tool

Erstellung von MSIX-Dateien

Starten Sie das MSIX Packaging Tool und wählen Sie die Option zur Erstellung eines neuen App-Paketes. Deaktivieren Sie die Auswahl Windows Search ist aktiv im anschließenden Dialog.

MSIX Packaging Tool

Im Beispiel erstellen wir eine MSIX-Datei für Notepad++. Dazu muss zuerst die Setup-Datei heruntergeladen werden. Im Anschluss wählen Sie im MSIX Packaging Tool die Datei und das Zertifikat aus. Die Signaturpräferenz muss auf Mit einem Zertifikat (.pfx) signieren eingestellt sein.

MSIX Packaging Tool

Füllen Sie die entsprechenden Felder aus.

MSIX Packaging Tool

Nun startet der Installer von Notepad++. Führen Sie ihn ganz normal durch und setzen Sie die Konfigurationen nach Ihren Wünschen.

Klicken Sie im MSIX Packaging Tool auf Weiter und Ja, fortfahren, wenn die Installation von Notepad++ abgeschlossen ist.

MSIX Packaging Tool

Das Tool wird anzeigen, dass keine Dienste installiert und erkannt wurden. Im letzten Dialogfenster kann der Speicherort des Pakets festgelegt werden. Schließen Sie die Erstellung mit Klick auf Erstellen ab.

MSIX Packaging Tool

Zertifikat auf anderen Windows PCs bereitstellen

Um das MSIX Paket auf anderen Windows PCs installieren zu können, muss das Zertifikat auf diesen bereitgestellt werden. Hierzu muss das Zertifikat mit openSSL von einem PKCS12 in ein PKCS1 Zertifikat umgewandelt werden. Dazu muss openSSL auf dem System installiert sein. Dies funktioniert mit diesem Befehl:

openssl pkcs12 -in MSIXZertifikat.pfx -clcerts -nokeys -out MSIXZertifikat.der

Anschließend kann das soeben umgewandelte PKCS1 Zertifikat in Relution unter Einstellungen > Zertifikate hochgeladen werden.

Abschließend muss das Zertifikat in einer Richtlinie für Windowsgeräte auf die Geräte ausgeliefert werden. Hierzu muss die Konfiguration “Zertifikate” genutzt und darin das Zertifikat ausgewählt werden.

Es muss zwingend Vertrauenswürdige Stammzertifikate als Zertifikatsspeicher gewählt werden.