395 Stimmen

Signtool-Fehler: Es wurden keine Zertifikate gefunden, die alle angegebenen Kriterien mit einer Windows Store-App erfüllen?

Ich versuche, ein Windows 8 Appx-Paket mit einer vorhandenen PFX-Datei zu signieren. Ich verwende einen Befehl wie folgt:

signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"

Und hiermit erhalte ich:

SignTool-Fehler: Es konnten keine Zertifikate gefunden werden, die alle angegebenen Kriterien erfüllen.

Welche "Kriterien" erfülle ich nicht? Dies ist nur für Testzwecke, daher handelt es sich um selbstsignierte Zertifikate. Ich habe versucht, den Schlüssel zu importieren und dann zu signieren, aber es führt immer zu dem gleichen Fehler. Wie kann ich das beheben?

750voto

JDandChips Punkte 8991

Bei der Anzeige dieses Fehlers über Visual Studio lag es daran, dass ein Signaturzertifikat eingerichtet war, um mit dem Computer übereinzustimmen, auf dem es ursprünglich entwickelt wurde.

Sie können dies überprüfen, indem Sie zu den Projekteigenschaften > Signatur-Registerkarte gehen und die Zertifikatdetails überprüfen.

Sie können "Die ClickOnce-Manifeste signieren" deaktivieren, um das Signieren zu deaktivieren.

Signiereigenschaften

Wenn Sie diese Option nicht deaktivieren möchten, müssen Sie das Zertifikat installieren.

177voto

Daniel Punkte 1805

Versuchen Sie es mit /debug.1,2 Wie folgt:

signtool sign /debug /f mypfxfile.pfx /p  (mydllexectuable).exe

Es wird Ihnen helfen herauszufinden, was los ist. Sie sollten eine Ausgabe wie diese erhalten:

Die folgenden Zertifikate wurden berücksichtigt:
    Ausgestellt für: 
    Ausgestellt von:  Class 2 Primary Intermediate Server CA
    Ablaufdatum: So, 01. März 14:18:23 2015
    SHA1-Hash: DD0000000000000000000000000000000000D93E

    Ausgestellt für:  Certification Authority
    Ausgestellt von:  Certification Authority
    Ablaufdatum: Mi, 17. Sep. 12:46:36 2036
    SHA1-Hash: 3E0000000000000000000000000000000000000F

Nach EKU-Filter waren 2 Zertifikate übrig.
Nach Ablauf-Filter waren 2 Zertifikate übrig.
Nach dem privaten Schlüsselfilter blieben 0 Zertifikate übrig.
SignTool-Fehler: Es wurden keine Zertifikate gefunden, die alle angegebenen Kriterien erfüllen.

Sie können sehen, welcher Filter dazu führt, dass Ihr Zertifikat nicht funktioniert, oder ob keine Zertifikate berücksichtigt wurden.

Ich habe die Hashes und andere Informationen geändert, aber Sie sollten die Idee bekommen.


1 <em>Bitte beachten Sie: <code>signtool</code> ist besonders darauf bedacht, wo die <code>/debug</code>-Option platziert wird. Sie muss nach der <code>sign</code>-Anweisung stehen.</em>
2 <em>Bitte beachten Sie auch: Die <code>/debug</code>-Option funktioniert nur mit bestimmten Versionen von <code>signtool</code>. Die WDK-Version hat die Option, während die Windows SDK-Version dies nicht hat.</em>

60voto

Ich hatte das gleiche Problem bei der Entwicklung meiner Konsolenanwendung und als schnelle Lösung,

gehe zu Projekteigenschaften und dann,

klicke auf das Signieren Register und deaktiviere "Das ClickOnce-Manifest signieren".

Bildbeschreibung:

Gib hier eine Bildbeschreibung ein

Gib hier eine Bildbeschreibung ein

Zur Information, du kannst auch diese Lösung in einem weniger als einminütigen Video sehen. Das obige Bild stammt aus dem Video.

43voto

whizkid Punkte 431

Bitte überprüfen Sie immer zuerst das Ablaufdatum Ihres Zertifikats, da die meisten Zertifikate ein Ablaufdatum haben. In meinem Fall ist das Zertifikat abgelaufen und ich versuchte, das Projekt zu erstellen.

32voto

nPcomp Punkte 6837

Wenn Sie die App nicht signieren müssen, klicken Sie mit der rechten Maustaste auf Ihr Projekt

Projekteigenschaften -> Signierung -> "ClickOnce Manifest signieren" deaktivieren

Wie auch dieser MS-Artikel vorschlägt,

Wenn Sie Visual Studio 2008 verwenden und auf .NET 3.5 abzielen und automatische Updates verwenden, können Sie einfach das Zertifikat ändern und eine neue Version bereitstellen,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X