web-dev-qa-db-fra.com

Signature d'assemblages avec un nom fort en utilisant pfx et visual studio

Voici donc le problème: nous avons décidé d’acheter un certificat de signature de code, nous en avons acheté un de Godaddy, qui était au format p12.

Après des recherches, j'ai découvert que p12 et pfx, c'est la même chose avec une extension différente, je l'ai donc renommée pfx. J'ai aussi des fichiers SPC et P7C, mais je ne sais pas quoi en faire.

Quoi qu'il en soit, j'ai essayé d'ajouter mon certificat à ma solution Visual Studio 2013 et voici ce que je reçois:

  • Je reçois d'abord une invite de mot de passe et après avoir saisi le mot de passe, je reçois une erreur en disant

    "An attempt was made to reference a token that does not exist."
    
  • Lors de ma deuxième tentative d’installation du pfx, je n’obtiens aucune invite ni aucun message d’erreur, mais lorsque je construis, j’obtiens l’erreur.

    "Cannot import the following key file: something.pfx 
    The key file may be password protected.
    To correct this, try to import the certificate again or 
    manually install the certificate to the Strong Name CSP with the following
    key container name: VS_KEY_33FA18307607ECFB"
    
  • Donc je fais ça en utilisant 

    sn -i something.pfx VS_KEY_33FA18307607ECFB
    

    qui se termine sans erreur, mais lorsque j’essaie de construire à nouveau, j’obtiens exactement la même erreur avec le même nom de conteneur.

    "Cannot import the following key file: something.pfx ....
    

J'ai essayé d'utiliser l'outil de signalisation qui est ce que le soutien de Goddady recommande comme alternative, mais bien qu'il signe l'Assemblée, il ne fournit pas le nom fort dont j'ai besoin.

J'ai aussi essayé d'extraire le certificat du pfx à un snk en utilisant

    sn -p something.pfx key.snk

et sélectionné la signature différée, mais le projet n'a pas encore généré de nouvelles erreurs.

Question rhétorique: pourquoi est-ce si difficile? Tant de gens ont des problèmes avec ça.

Puis-je avoir une aide s'il vous plait?

21
Ares

Je viens de rencontrer le même problème et cet article sauvé mon bacon! 

Tout ce que je devais faire était de recréer mon certificat de Code Signing avec KeySpec défini sur 2 (AT_SIGNATURE) et maintenant VS (2013) importe et signe mon Assemblée sans erreur! :-RÉ

Je réalise que c'est un peu différent de votre scénario, mais j'espère que cela pourra vous aider d'une certaine manière ...

22
SmithPlatts

Je possède un certificat Comodo (.p12) et j'ai rencontré le même problème et je l'ai résolu en fonction de la réponse @SmithPlatts et du commentaire @Ares. Voici une procédure détaillée pour ceux qui ne sont pas avertis (comme moi) avec des certificats:

  1. Ouvrez l'invite de commande avec les privilèges d'administrateur.
  2. Tapez la commande: certutil -importPFX "<certFilepath>\<certFilename>.p12" AT_SIGNATURE (AT_SIGNATURE est ce qui fait que cela fonctionne au lieu de [cliquez avec le bouton droit sur le fichier .p12] -> 'Installer PFX')
  3. Tapez un mot de passe de votre choix.
  4. Ouvrez mmc.exe avec les privilèges d'administrateur, Fichier -> Ajouter/Supprimer un composant logiciel enfichable ...
  5. Ajouter 'Certificats'
  6. Choisissez 'Compte d'ordinateur'
  7. Sous Racine de la console/Certificats (ordinateur local)/Personnel/Certificats, localisez votre certificat installé à l'étape 2.
  8. Cliquez avec le bouton droit de la souris sur Cert/Toutes les tâches/Exporter -> Suivant/Oui, exporter la clé privée.
  9. Allez à 'Echange d'informations personnelles - PKCS # 12 (.PFX)' 
  10. Décochez la case "Inclure tous les certificats ...". Important! Si coché, VS générera le message suivant: "Impossible de trouver le certificat et la clé privée pour le déchiffrement" lors de la signature. 
  11. Cochez la case "Exporter toutes les propriétés étendues" (facultatif).
  12. Vous pouvez cocher la case "Supprimer la clé privée ..." si vous n'envisagez pas de réexporter à l'avenir. 
  13. Cochez mot de passe et tapez le mot de passe de l'étape 3.
  14. Choisissez le chemin et le nom du fichier pour le certificat exporté (.pfx).
  15. Utilisez le fichier .pfx exporté pour signer votre Assemblée/projet de VS.
  16. Construisez le projet pour vous assurer que pfx fonctionne correctement.
20
GDS

J'ai eu ce problème et résolu en ouvrant Visual Studio en tant qu'administrateur.

9
Matthew Green

J'ai résolu ce problème en recréant le PFX en utilisant openssl avec l'option -keysig.

openssl pkcs12 -export -out "MyPfx.pfx" -keysig -inkey "MyKey.key" -in "MyCer.cer"
3
Fabio Landi

A été confronté à cette question ainsi que peut-être des questions connexes auxquelles les gens ont fait allusion.

Travaillant dans un environnement d'entreprise dans un service de développement au sein d'un service informatique plus important, je ne dispose pas des autorisations complètes pour l'administrateur local. En tant que tel, lorsque j'exécute VS, il ne fonctionne pas en tant qu'administrateur local.

Une fois que j'ai configuré mon raccourci pour exécuter VS 2013/2015, les problèmes que je voyais avec le fait de chanter une assemblée… ont disparu.

Cela aussi pourrait faire gagner du temps à quelqu'un, ainsi que de lui arracher les cheveux de ses racines. 

0
Steve