J'essaie de signer un package appx Windows 8 avec un fichier pfx que j'ai. J'utilise une commande comme ça:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
Et à partir de cela, je reçois:
Erreur SignTool: aucun certificat répondant à tous les critères indiqués n'a été trouvé.
Quels «critères» ne suis-je pas en train de respecter? Il s'agit uniquement de tests, il s'agit donc de certificats auto-signés. J'ai essayé d'importer la clé puis de la signer, mais cela entraîne toujours la même erreur. Comment puis-je réparer ça?
Signtool
essaie de trouver le certificat dans le magasin de certificats racine de confiance et que vous n'avez aucun certificat de signature de code là-bas.Réponses:
Lors de l'obtention de cette erreur via Visual Studio, c'était parce qu'il y avait une configuration de certificat de signature pour correspondre à l'ordinateur sur lequel il était initialement développé.
Vous pouvez le vérifier en allant dans l'onglet Propriétés du projet> Signature et en vérifiant les détails du certificat.
Vous pouvez décocher "Signer les manifestes ClickOnce" pour désactiver la signature.
Si vous ne souhaitez pas désactiver cette option, vous devrez installer le certificat.
la source
Essayez avec / debug. 1,2 Comme dans:
Cela vous aidera à savoir ce qui se passe. Vous devriez obtenir une sortie comme celle-ci:
Vous pouvez voir quel filtre empêche votre certificat de fonctionner ou si aucun certificat n'a été pris en compte.
J'ai changé les hachages et d'autres informations, mais vous devriez avoir l'idée. J'espère que cela t'aides.
1 Veuillez noter:
signtool
indique en particulier où l'/debug
option est placée. Il doit aller après lasign
déclaration.2 Notez également: l'
/debug
option ne fonctionne qu'avec certaines versions designtool
. La version WDK a l'option, contrairement à la version Windows SDK.la source
Veuillez toujours vérifier la date d'expiration de votre certificat, car la plupart des certificats ont une date d'expiration. Dans mon cas, le certificat a expiré et j'essayais de construire un projet.
la source
certutil -dump mycertificate.pfx
. Regardez la dernière entrée car les premières sont l'AC, pas votre certificat de signature de code.Si vous n'avez pas besoin de signer l'application, faites un clic droit sur votre projet
Project Properties -> Signing -> uncheck "Sign the ClickOnce Manifest"
Aussi, comme le suggère cet article MS,
la source
il suffit de décocher la case "Signer le clic une fois manifesté" dans l'onglet de signature dans les propriétés du projet, cela supprimera l'erreur et vous pourrez en créer une nouvelle à partir de là.
la source
Vous avez le même problème, il s'est avéré que la clé privée du certificat n'avait aucune autorisation.
Pour corriger - ouvrez la gestion du certifacte, trouvez votre certificat, faites un clic droit -> Gérer les clés privées puis en sécurité en haut assurez-vous que votre utilisateur est ajouté et dispose des autorisations, qui l'ont corrigé pour moi.
la source
Dans mon cas, j'ai le mauvais type de certificat que j'essaie d'associer.
J'avais "Authentification serveur" plutôt que "Signature de code" .
Vous devriez pouvoir le voir dans le composant logiciel enfichable Certificat dans la section Objectif prévu.
Après cela, cela fonctionne très bien.
la source
Dans le cas où quelqu'un d'autre se heurterait à ceci: Mon problème a fini par être que j'avais besoin d'exécuter l'invite de commande en tant qu'administrateur avant d'utiliser l'application signtool.exe. Ensuite, tout fonctionne à merveille.
la source
J'ai eu le même problème dans le développement de mon application console et comme solution rapide ,
allez
project properties
ensuite,cliquez sur l'
signing
onglet et décochez "Signer le manifeste ClickOnce".Description de l'image:
FYI Vous pouvez également voir cette solution vidéo de moins d'une minute . L'image ci-dessus est prise à partir de la vidéo.
la source
J'ai résolu cela en utilisant l'
/sm
indicateur pour spécifier de regarder dans le magasin de la machine au lieu de la valeur par défaut, qui est mon magasin (utilisateur local). En outre, cela peut aider à activer le débogage de signtool à l'aide de/debug
.la source
J'ai eu ce problème et je ne sais pas exactement quelle étape ci-dessous l'a fait fonctionner, mais j'espère que cela aide quelqu'un d'autre ... c'est ce que j'ai fait:
certmgr.msc
et exportez le certificat (trouvé dans le magasin que vous avez utilisé à la 1ère étape) en tant que fichier pfx, y compris la clé privée et les propriétés étendues (probablement inutiles)signtool sign /f "c:\mycert.pfx" /p mypassword /d "description" /t http://timestamp.verisign.com/scripts/timstamp.dll $(TargetPath)
où le mot de passe est le même que celui fourni lors de l'exportation
la source
.crt
fichier fourni par Comodo au lieu d'installer le certificat, puis d'exporter le.pfx
fichier.J'ai le même problème, en lisant certaines réponses (publiées ici), j'ai vu mon certificat expiré.
Il suffit d'en créer un nouveau à partir de mon projet de démarrage. Ensuite, le gestionnaire de certificats a supprimé le certificat expiré.
Maintenant, tout se passe bien.
la source
Les critères incluent le nom du compte (dont il est associé à la clé privée), le domaine, la société, la date d'expiration, les finalités prévues, entre autres.
Il existe de nombreuses raisons possibles pour que cette erreur se produise, certaines ont déjà été répertoriées. Voici une autre astuce: lors de l'importation d'un certificat, assurez-vous de travailler avec le fichier d'origine reçu de l'autorité de certification (CA) , sinon certaines propriétés pourraient être perdues.
Exemple: récemment, j'ai essayé d'importer un certificat exporté depuis un autre compte sur la même machine. Le certificat est devenu visible pour mon compte mais n'était pas associé à mon compte et a par conséquent
signtool
refusé de le reconnaître sans fournir explicitement le nom de fichier et un mot de passe. Ce qui, lorsqu'il est fait dans le cadre du processus de génération et écrit explicitement dans un fichier de commandes ou un fichier source, peut ne pas être suffisamment sécurisé. (L'importation du certificat émis par l'AC d'origine l'a résolu.)la source
J'ai eu le même message « Après le filtre de clé privée, il n'y a plus de certificats » et j'ai passé trop de ma vie à essayer de comprendre ce que le message voulait dire.
Le problème était que j'avais mal installé le certificat dans le magasin de certificats Windows, donc il n'y avait pas de clé privée associée au certificat de signature de code.
Ce que j'aurais dû faire était ceci:
À l'aide de Firefox ou d'Internet Explorer, soumettez la demande à l'émetteur. Cela génère une CLÉ PRIVÉE qui est stockée en silence par le navigateur (une boîte de dialogue apparaît pendant une fraction de seconde dans Firefox). Notez que d'autres navigateurs peuvent ne pas fonctionner: votre vie est trop courte pour savoir s'ils le font.
Soumettez la demande, parcourez les boucles et les boucles de validation de l'émetteur, sacrifiez une chèvre, priez les dieux, soumettez une déclaration signée de vos arrière-grands-parents, etc.
Téléchargez le certificat (.crt) et importez-le dans le même navigateur . Le navigateur possède désormais à la fois la clé privée et le certificat .
Exportez le certificat à partir du navigateur en tant que fichier d'échange d'informations personnelles (.p12). Il vous sera demandé de fournir un mot de passe pour protéger ce fichier.
Conservez une copie de sauvegarde du fichier .p12.
Exécutez le gestionnaire de certificats (certmgr.msc), cliquez avec le bouton droit sur le magasin de certificats personnels , sélectionnez Toutes les tâches / Importer ... et importez le fichier .p12 dans Windows. Il vous sera demandé le mot de passe que vous avez utilisé pour protéger le fichier. À ce stade, en fonction de vos exigences de sécurité, vous pouvez marquer la clé comme exportable afin de pouvoir restaurer une copie à partir du magasin Windows. Vous pouvez également indiquer qu'un mot de passe est requis avant utilisation si vous souhaitez interrompre des scripts batch.
Exécutez signtool avec succès, respirez un soupir de soulagement et réfléchissez à la quantité de votre vie que vous avez gaspillée en raison de mauvais messages d'erreur et d'une documentation médiocre ou manquante.
la source
J'ai aussi eu ce problème, j'ai beaucoup essayé. Utilisé le SDK ainsi que la signature de Visual Studio, mais partout où j'ai obtenu "Aucun certificat n'a été trouvé qui répondait à tous les critères donnés".
Solution: sachez que si "après le filtre de clé privée": "0 gauche" apparaît avec l'option signtool sign / debug ..., la cause est que votre PC n'a pas l'autorité de certification elle-même dans le magasin. Pour résoudre ce problème, installez d'abord l'autorité de certification (dans mon cas, un fichier .crt), puis réexécutez le signe. Cela devrait fonctionner dès maintenant!
Signtool ne peut être utilisé qu'avec une autorité de certification demandée et détenue par le même PC.
la source
Mon problème a fini par être que je ne comprenais pas les options signtool. J'avais fourni l'option / n avec quelque chose qui ne correspondait pas à mon certificat. Quand j'ai enlevé ça, ça a cessé de se plaindre.
la source
J'ai eu un problème similaire, le nom de mon ordinateur a changé et le certificat a expiré. J'ai pu résoudre ce problème en créant un nouveau certificat de test.
Dans Visual Studio, cliquez avec le bouton droit sur le projet dans l'explorateur de solutions. Sélectionnez les propriétés. Sélectionnez la fenêtre des propriétés de connexion. Cliquez sur "Créer un certificat de test ....". Entrez les informations de mot de passe pour le certificat de test et cliquez sur ok.
la source
Avec / debug, lorsque vous obtenez ce message "Après le filtre de clé privée, il ne reste plus de certificats.", Une des raisons pourrait être que le fichier pfx n'a pas la clé privée. Lorsque vous exportez le certificat installé vers un fichier pfx, assurez-vous que la case à cocher inclut également la clé privée.
la source
Accédez à
project properties
tous les champs et décochez-lesFirm
avant de lancer la compilationla source