6 votes

SignTool Erreur : ISignedCode::Sign a renvoyé une erreur : 0x80092006

Je signe un programme EXE avec un certificat délivré par une AC de confiance. Je utilise signtool.exe du Windows SDK v6.0a.

Le certificat est situé dans le magasin d'ordinateur et est dans le dossier "Personnels".

Ma ligne de commande est :

sign /sm /n "Ma société" /d MonNomProduit /du http://mon.url.com "C:\Setup\setup.exe"

Quand j'exécute cette commande sur la ligne de commande, cela fonctionne bien. Quand j'exécute cette commande dans un processus batch (appelé par un service web, donc aucun utilisateur n'est connecté lorsque la commande est exécutée), l'erreur suivante se produit :

Nombre d'erreurs : 1 Erreur de SignTool : ISignedCode::Sign a renvoyé l'erreur : 0x80092006 Aucun fournisseur n'a été spécifié pour le magasin ou l'objet.

Est-ce que quelqu'un peut aider sur cela ?

3voto

oefe Points 9122

Le problème est que votre processus de service ne peut pas accéder à votre clé privée, qui est stockée sous votre compte.

Connectez-vous au compte qui exécute le service web et importez la clé privée dans un conteneur de clés. Vous pouvez le faire, par exemple, en utilisant l'outil de nom fort (sn.exe) de .NET:

sn -i MyCertificate.pfx MyCodeSigningKey

Maintenant, modifiez votre script de construction pour utiliser ce conteneur de clés:

signtool sign /sm /a /v /csp "Microsoft Strong Cryptographic Provider" /kc MyCodeSigningKey 

/kc spécifie le conteneur de clés. /kc exige que vous spécifiiez le "CSP" (Cryptographic Service Provider) via l'interrupteur /csp. "Microsoft Strong Cryptographic Provider" est le fournisseur par défaut utilisé par sn.

3voto

coder_2007 Points 11

Pour gagner du temps à quelqu'un, j'ai eu ce problème. Il s'est avéré que mon certificat était corrompu d'une manière ou d'une autre. Après l'avoir supprimé du magasin de certificats et l'avoir importé à nouveau, le problème a disparu. Je vous suggère de recréer le fichier PFX ou de le copier depuis un endroit où vous savez qu'il n'est pas corrompu.

1voto

Ruben Bartelink Points 23945

J'ai [juste maintenant, juste une fois] rencontré la même condition (immédiatement après une invocation réussie avec les mêmes paramètres sauf sur un fichier MSI différent). Le re-exécution a réussi lors de l'exécution suivante du script de construction. Utilisant également, comme vous le

/sm /d /duNe pas utiliser    /nEn outre, utiliser    /t

0voto

Andreas Magnusson Points 4442

J'ai également eu ce problème. Je ne suis toujours pas tout à fait sûr de ce qui l'a causé car je n'ai jamais pris le temps de le découvrir. Ce que j'ai trouvé, c'est que la clé privée avait disparu !?

J'ai fait ce que suggère coder_2007 et cela a fonctionné pour une génération automatique complète, mais la suivante a donné la même erreur. Donc quelque chose sur mon serveur de génération a cassé la clé privée après une génération complète (incluant plusieurs applications signées).

En fin de compte, ce que j'ai finalement fait, c'est, immédiatement après avoir importé le PFX, d'aller à %allusersprofile%\Microsoft\Crypto\RSA\MachineKeys et de protéger en écriture le fichier le plus récent (celui qui correspond à l'heure de l'importation).

0voto

SilentBlob Points 1

Cela peut se produire si votre mot de passe Windows est modifié après l'installation du certificat. Revenir au mot de passe initial résoudra le problème. Si vous ne pouvez pas le faire, vous devrez réinstaller le certificat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X