How to create an app package signing certificate (So erstellen Sie ein App-Paketsignaturzertifikat)

Wichtig

MakeCert.exe ist veraltet. Aktuelle Anleitungen zum Erstellen eines Zertifikats finden Sie unter Erstellen eines Zertifikats für die Paketsignatur.

 

Erfahren Sie, wie Sie MakeCert.exe und Pvk2Pfx.exe verwenden, um ein Testzertifikat für die Codesignatur zu erstellen, damit Sie Ihre Windows-App-Pakete signieren können.

Sie müssen Ihre gepackten Windows-Apps digital signieren, bevor Sie sie bereitstellen. Wenn Sie Microsoft Visual Studio 2012 nicht zum Erstellen und Signieren Ihrer App-Pakete verwenden, müssen Sie Ihre eigenen Codesignaturzertifikate erstellen und verwalten. Sie können Zertifikate mithilfe von MakeCert.exe und Pvk2Pfx.exe aus dem Windows Driver Kit (WDK) erstellen. Anschließend können Sie die Zertifikate verwenden, um die App-Pakete zu signieren, damit sie lokal für Tests bereitgestellt werden können.

Wichtige Informationen

Technologien

Voraussetzungen

Anweisungen

Schritt 1: Ermitteln des Herausgebernamens des Pakets

Damit das von Ihnen erstellte Signaturzertifikat mit dem App-Paket verwendet werden kann, das Sie signieren möchten, muss der Antragstellername des Signaturzertifikats mit dem Publisher-Attribut des Identity-Elements im AppxManifest.xml für diese App übereinstimmen. Angenommen, die AppxManifest.xml enthält:

  <Identity Name="Contoso.AssetTracker" 
    Version="1.0.0.0" 
    Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>

Verwenden Sie für den publisherName-Parameter , den Sie im nächsten Schritt mit dem MakeCert-Hilfsprogramm angeben, "CN=Contoso Software, O=Contoso Corporation, C=US".

Hinweis

Diese Parameterzeichenfolge wird in Anführungszeichen angegeben und berücksichtigt die Groß-/Kleinschreibung und den Leerraum.

 

Die Publisher-Attributzeichenfolge , die für das Identity-Element in der AppxManifest.xml definiert ist, muss mit der Zeichenfolge identisch sein, die Sie mit dem MakeCert /n-Parameter für den Zertifikatantragstellernamen angeben. Kopieren Sie die Zeichenfolge, und fügen Sie sie nach Möglichkeit ein.

Schritt 2: Erstellen eines privaten Schlüssels mit MakeCert.exe

Verwenden Sie das MakeCert-Hilfsprogramm , um ein selbstsigniertes Testzertifikat und einen privaten Schlüssel zu erstellen:

MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e 
expirationDate /sv MyKey.pvk MyKey.cer

Mit diesem Befehl werden Sie aufgefordert, ein Kennwort für die PVK-Datei anzugeben. Es wird empfohlen, ein sicheres Kennwort zu wählen und Ihren privaten Schlüssel an einem sicheren Ort zu speichern.

Es wird empfohlen, die im vorherigen Beispiel vorgeschlagenen Parameter aus den folgenden Gründen zu verwenden:

/R

Erstellt ein selbstsigniertes Stammzertifikat. Dies vereinfacht die Verwaltung ihres Testzertifikats.

/h 0

Markiert die grundlegende Einschränkung für das Zertifikat als Endentität. Dadurch wird verhindert, dass das Zertifikat als Zertifizierungsstelle (CA) verwendet wird, die andere Zertifikate ausstellen kann.

/Eku

Legt die EKU-Werte (Enhanced Key Usage) für das Zertifikat fest.

Hinweis

Platzieren Sie kein Leerzeichen zwischen den beiden durch Trennzeichen getrennten Werten.

 

  • 1.3.6.1.5.5.7.3.3 gibt an, dass das Zertifikat für die Codesignatur gültig ist. Geben Sie immer diesen Wert an, um die beabsichtigte Verwendung für das Zertifikat einzuschränken.
  • 1.3.6.1.4.1.311.10.3.13 gibt an, dass das Zertifikat die Lebensdauersignatur berücksichtigt. Wenn eine Signatur zeitstempelt ist, bleibt die Signatur in der Regel gültig, solange das Zertifikat zum Zeitpunkt des Zeitstempels gültig war, auch wenn das Zertifikat abläuft. Diese EKU erzwingt, dass die Signatur abläuft, unabhängig davon, ob die Signatur zeitstempelt ist.

/E

Legt das Ablaufdatum des Zertifikats fest. Geben Sie einen Wert für den parameter expirationDate im mm/tt/jjjj-Format an. Es wird empfohlen, ein Ablaufdatum nur so lange zu wählen, wie es für Ihre Testzwecke erforderlich ist, in der Regel weniger als ein Jahr. Dieses Ablaufdatum in Verbindung mit der EKU für die Lebensdauersignatur kann dazu beitragen, das Fenster einzuschränken, in dem das Zertifikat kompromittiert und missbraucht werden kann.

Weitere Informationen zu anderen Optionen finden Sie unter MakeCert.

Schritt 3: Erstellen einer Pfx-Datei (Personal Information Exchange) mithilfe von Pvk2Pfx.exe

Verwenden Sie das Pvk2Pfx-Hilfsprogramm , um die PVK- und CER-Dateien, die MakeCert erstellt hat, in eine PFX-Datei zu konvertieren, die Sie mit SignTool verwenden können, um ein App-Paket zu signieren:

Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]

Die Dateien MyKey.pvk und MyKey.cer sind dieselben Dateien, die im vorherigen Schritt erstellt MakeCert.exe . Mithilfe des optionalen Parameters /po können Sie ein anderes Kennwort für die resultierende PFX-Datei angeben. andernfalls hat die PFX das gleiche Kennwort wie MyKey.pvk.

Weitere Informationen zu anderen Optionen finden Sie unter Pvk2Pfx.

Bemerkungen

Nachdem Sie die PFX-Datei erstellt haben, können Sie die Datei mit SignTool verwenden, um ein App-Paket zu signieren. Weitere Informationen finden Sie unter Signieren eines App-Pakets mit SignTool. Das Zertifikat wird jedoch vom lokalen Computer weiterhin nicht für die Bereitstellung von App-Paketen vertrauenswürdig, bis Sie es im Speicher für vertrauenswürdige Zertifikate des lokalen Computers installieren. Sie können Certutil.exeverwenden, das mit Windows ausgestattet ist.

So installieren Sie Zertifikate mit WindowsCertutil.exe

  1. Führen Sie Cmd.exe als Administrator aus.

  2. Führen Sie diesen Befehl aus:

    Certutil -addStore TrustedPeople MyKey.cer
    

Es wird empfohlen, die Zertifikate zu entfernen, wenn sie nicht mehr verwendet werden. Führen Sie an derselben Administratoreingabeaufforderung den folgenden Befehl aus:

Certutil -delStore TrustedPeople certID

Die certID ist die Seriennummer des Zertifikats. Führen Sie diesen Befehl aus, um die Seriennummer des Zertifikats zu ermitteln:

Certutil -store TrustedPeople

Sicherheitsüberlegungen

Durch das Hinzufügen eines Zertifikats zu lokalen Computerzertifikatspeichern wirken Sie sich auf die Zertifikatvertrauensstellung aller Benutzer auf dem Computer aus. Es wird empfohlen, alle Codesignaturzertifikate, die Sie zum Testen von App-Paketen benötigen, im Zertifikatspeicher für vertrauenswürdige Personen zu installieren. Entfernen Sie diese Zertifikate umgehend, wenn sie nicht mehr erforderlich sind, um zu verhindern, dass sie zur Kompromittierung der Systemvertrauensstellung verwendet werden.

Beispiele

Beispiel zum Erstellen eines App-Pakets

Konzepte

Bewährte Methoden für die Codesignatur

Signieren eines App-Pakets mit SignTool

Signieren eines App-Pakets