<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Msix on kenji.blog</title><link>http://kenji.blog/de/tags/msix/</link><description>Recent content in Msix on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 30 Aug 2025 04:18:04 +0900</lastBuildDate><atom:link href="http://kenji.blog/de/tags/msix/index.xml" rel="self" type="application/rss+xml"/><item><title>Zulassen der msix-Installation mit einem selbstsignierten Zertifikat</title><link>http://kenji.blog/de/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</link><pubDate>Sat, 30 Aug 2025 04:18:04 +0900</pubDate><guid>http://kenji.blog/de/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</guid><description>&lt;img src="http://kenji.blog/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/img.png" alt="Featured image of post Zulassen der msix-Installation mit einem selbstsignierten Zertifikat" />&lt;h1 id="zulassen-der-msix-installation-mit-einem-selbstsignierten-zertifikat">Zulassen der msix-Installation mit einem selbstsignierten Zertifikat
&lt;/h1>&lt;p>Beim Verteilen von Apps unter Windows ist die Verwendung eines &lt;strong>MSIX-Pakets&lt;/strong> praktisch, da Installations- und Aktualisierungsmechanismen vereinheitlicht werden. MSIX hat jedoch die Einschränkung, dass &amp;ldquo;immer ein signiertes Zertifikat erforderlich ist&amp;rdquo;.
Wenn Sie eine von einem Unternehmen oder einer Einzelperson entwickelte App zum Testen verteilen möchten, kann es Situationen geben, in denen &amp;ldquo;der Kauf eines kommerziellen Code-Signing-Zertifikats übertrieben ist&amp;rdquo;.&lt;/p>
&lt;p>Hier ist ein &lt;strong>selbstsigniertes Zertifikat (Self-Signed Certificate)&lt;/strong> nützlich. In diesem Artikel fassen wir die Schritte zusammen, um ein selbstsigniertes Zertifikat an MSIX anzuhängen und die Installation in einer lokalen Umgebung zuzulassen.&lt;/p>
&lt;hr>
&lt;h2 id="1-ein-selbstsigniertes-zertifikat-erstellen">1. Ein selbstsigniertes Zertifikat erstellen
&lt;/h2>&lt;p>Starten Sie zunächst PowerShell im Administratormodus und führen Sie den folgenden Befehl aus.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">Selbstsigniertes&lt;/span> &lt;span class="n">Zertifikat&lt;/span> &lt;span class="n">erstellen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-SelfSignedCertificate&lt;/span> &lt;span class="n">-Type&lt;/span> &lt;span class="n">CodeSigningCert&lt;/span> &lt;span class="n">-Subject&lt;/span> &lt;span class="s2">&amp;#34;CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5&amp;#34;&lt;/span> &lt;span class="n">-CertStoreLocation&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="n">-NotAfter&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">Get-Date&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="py">AddYears&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mf">10&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">-KeyUsage&lt;/span> &lt;span class="n">DigitalSignature&lt;/span> &lt;span class="n">-FriendlyName&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Was hier erstellt wird, ist ein Zertifikat für &amp;ldquo;Code Signing&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>Ihm mit &lt;code>-FriendlyName&lt;/code> einen leicht verständlichen Namen zu geben, erleichtert das spätere Auffinden.&lt;/li>
&lt;li>Sie können das Ablaufdatum mit &lt;code>-NotAfter&lt;/code> anpassen. Diesmal ist es auf 10 Jahre eingestellt.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-pfx-datei-exportieren">2. PFX-Datei exportieren
&lt;/h2>&lt;p>Exportieren Sie das erstellte Zertifikat im PFX-Format, damit es mit &lt;code>signtool&lt;/code> verwendet werden kann.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">pfx&lt;/span> &lt;span class="n">erstellen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$cert&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">Get-ChildItem&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Where-Object&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">$_&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">FriendlyName&lt;/span> &lt;span class="o">-eq&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$password&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">ConvertTo-SecureString&lt;/span> &lt;span class="n">-String&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="n">-Force&lt;/span> &lt;span class="n">-AsPlainText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Export-PfxCertificate&lt;/span> &lt;span class="n">-Cert&lt;/span> &lt;span class="nv">$cert&lt;/span> &lt;span class="n">-FilePath&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="n">-Password&lt;/span> &lt;span class="nv">$password&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Das zu diesem Zeitpunkt festgelegte Passwort (im Beispiel &lt;code>password&lt;/code>) wird für den späteren Signaturvorgang benötigt.&lt;/p>
&lt;hr>
&lt;h2 id="3-selbstsigniertes-zertifikat-in-vertrauenswürdigen-stammzertifizierungsstellen-installieren">3. Selbstsigniertes Zertifikat in vertrauenswürdigen Stammzertifizierungsstellen installieren
&lt;/h2>&lt;p>Das erstellte Zertifikat wird von Windows nicht ohne Weiteres als vertrauenswürdig eingestuft. Um es zu installieren, müssen Sie es aus &lt;code>certmgr.msc&lt;/code> nach &lt;strong>[Vertrauenswürdige Stammzertifizierungsstellen] -&amp;gt; [Zertifikate]&lt;/strong> importieren.&lt;/p>
&lt;p>Wenn Sie das exportierte Zertifikat ( &lt;code>.cer&lt;/code> oder &lt;code>.pfx&lt;/code> ) importieren, wird es auf dem Ziel-PC als vertrauenswürdiges Zertifikat behandelt.
Dadurch wird verhindert, dass die Warnung &amp;ldquo;nicht vertrauenswürdiges Zertifikat&amp;rdquo; angezeigt wird, selbst wenn Sie das MSIX signieren.&lt;/p>
&lt;hr>
&lt;h2 id="4-installationsprogramm-msix-signieren">4. Installationsprogramm (MSIX) signieren
&lt;/h2>&lt;p>Verwenden Sie schließlich das erstellte PFX-Zertifikat, um das MSIX zu signieren. &lt;code>signtool&lt;/code> ist in Visual Studio und im Windows SDK enthalten.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">Installationsprogramm&lt;/span> &lt;span class="n">signieren&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">signtool&lt;/span> &lt;span class="n">sign&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">fd&lt;/span> &lt;span class="n">SHA256&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">f&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;C:\installer\installer.msix&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>&lt;code>/fd SHA256&lt;/code> gibt den Signaturalgorithmus an.&lt;/li>
&lt;li>Geben Sie die PFX-Datei mit &lt;code>/f&lt;/code> an und übergeben Sie das Passwort mit &lt;code>/p&lt;/code>.&lt;/li>
&lt;li>Geben Sie schließlich den Pfad zur MSIX-Datei an.&lt;/li>
&lt;li>Wenn der Pfad zu signtool nicht festgelegt ist, geben Sie den vollständigen Pfad an. In meiner Umgebung befand es sich am folgenden Speicherort.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\microsoft.windows.sdk.buildtools&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.1742&lt;/span>&lt;span class="se">\b&lt;/span>&lt;span class="s2">in&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.0&lt;/span>&lt;span class="se">\x64&lt;/span>&lt;span class="s2">\signtool.exe&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Damit ist die Signatur abgeschlossen und ein MSIX, das auf dem Ziel-PC installiert werden kann, ist fertiggestellt.&lt;/p>
&lt;hr>
&lt;h2 id="zusammenfassung">Zusammenfassung
&lt;/h2>&lt;ul>
&lt;li>Erstellen Sie ein selbstsigniertes Zertifikat mit &lt;strong>New-SelfSignedCertificate&lt;/strong>&lt;/li>
&lt;li>Exportieren Sie PFX mit &lt;strong>Export-PfxCertificate&lt;/strong>&lt;/li>
&lt;li>Installieren Sie das Zertifikat in &lt;strong>Vertrauenswürdige Stammzertifizierungsstellen&lt;/strong>&lt;/li>
&lt;li>Signieren Sie MSIX mit &lt;strong>signtool&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Indem Sie diesem Ablauf folgen, können Sie den Betrieb überprüfen und in der lokalen Umgebung zu Testzwecken verteilen, ohne ein kommerzielles Zertifikat kaufen zu müssen.
Natürlich ist ein von einer Zertifizierungsstelle ausgestelltes Zertifikat für den tatsächlichen kommerziellen Vertrieb unerlässlich, aber diese Methode ist in der Entwicklungs- und Überprüfungsphase sehr praktisch.&lt;/p>
&lt;hr>
&lt;p>👉 Diesmal haben wir installer.msix als Beispiel verwendet, aber Sie können das gleiche Verfahren auf Ihre eigene App anwenden.&lt;/p>
&lt;hr></description></item></channel></rss>