Impossible d'importer le fichier de clés 'blah.pfx' - erreur 'Le fichier de clés peut être protégé par mot de passe'

392

Nous venons de mettre à niveau nos projets Visual Studio 2008 vers Visual Studio 2010. Tous nos assemblys ont été signés en utilisant un certificat de signature de code Verisign . Depuis la mise à niveau, nous obtenons continuellement l'erreur suivante:

Impossible d'importer le fichier de clé suivant: companyname.pfx. Le fichier de clé peut être protégé par mot de passe. Pour corriger cela, essayez d'importer à nouveau le certificat ou installez manuellement le certificat dans le CSP Strong Name avec le nom de conteneur de clé suivant: VS_KEY_3E185446540E7F7A

Cela se produit sur certaines machines de développement et pas sur d'autres. Certaines méthodes utilisées pour résoudre ce problème qui fonctionnaient parfois incluent:

  • Réinstallation du fichier de clé à partir de l'Explorateur Windows (clic droit sur le fichier PFX et cliquez sur Installer)
  • L'installation de Visual Studio 2010 sur une nouvelle machine pour la première fois vous invite à saisir le mot de passe la première fois que vous ouvrez le projet, puis cela fonctionne. Sur les machines mises à niveau à partir de Visual Studio 2008, vous n'obtenez pas cette option.

J'ai essayé d'utiliser l' utilitaire SN.EXE (Strong Name Tool) pour enregistrer la clé avec le Strong Name CSP comme le suggère le message d'erreur, mais chaque fois que j'exécute l'outil avec des options à l'aide de la version fournie avec Visual Studio 2010, SN .EXE répertorie simplement ses arguments de ligne de commande au lieu de faire quoi que ce soit. Cela se produit quels que soient les arguments que je fournis.

Pourquoi cela se produit-il et quelles sont les étapes claires pour y remédier? Je suis sur le point d'abandonner les installations ClickOnce et la signature de code Microsoft.

JasonD
la source

Réponses:

448

Je rencontrais aussi ce problème. J'ai pu résoudre le problème en exécutant
sn -i <KeyFile> <ContainerName>( installe la paire de clés dans un conteneur nommé ).

snest généralement installé dans le cadre d'un SDK Windows. Par exemple C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe. Cet emplacement n'est probablement pas sur le chemin de recherche de votre environnement standard. Toutefois, l '"invite de commandes développeur" installée par Visual Studio ajoute des informations supplémentaires qui incluent généralement l'emplacement correct.

Sur la base de votre message qui ressemblerait à

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

Cela doit être exécuté à partir de l'emplacement de votre fichier PFX.Si vous avez chargé la solution dans VS 2010, vous pouvez simplement cliquer avec le bouton droit sur le fichier pfx dans l'explorateur de solutions et choisir Ouvrir l'invite de commandes qui lancera l'outil d'invite cmd .net 2010 dans le bon répertoire.

Avant d'exécuter cette commande sn, j'ai réinstallé le pfx en cliquant dessus avec le bouton droit et en choisissant l'installation, mais cela n'a pas fonctionné. Juste quelque chose à noter car cela pourrait être la combinaison des deux qui a fourni la solution.

J'espère que cela vous aidera à résoudre votre problème.

Brandon Manchester
la source
5
Merci Brandon - oui cela, comme la réinstallation manuelle du fichier clé "en quelque sorte" résout le problème. Le problème est que dès que vous archivez le fichier de clé, tous les autres utilisateurs qui obtiennent les dernières informations sur ce fichier de clé archivé vont maintenant rencontrer ce bogue. Si l'un de ces utilisateurs vérifie son "correctif" et que j'obtiens la dernière version, alors ma machine est à nouveau cassée ... et ainsi de suite. Microsoft a lancé un ticket d'incident à ce sujet et l'a attribué à l'équipe VS2010 et à l'équipe VSS.
JasonD
2
Intéressant. Je n'ai pas rencontré ce problème lors de l'ajout du pfx au nouveau CSP. À ma connaissance, SN -i ne modifie pas le fichier pfx, vous ne devriez donc pas avoir à enregistrer quoi que ce soit par la suite. Cependant, si vous deviez modifier le fichier pfx de toute façon, comme la réinitialisation du mot de passe, cela provoquerait un problème car cela modifierait le fichier pfx. Votre solution se construit-elle avec ce fichier pfx à partir d'une autre machine? Si c'est le cas, le fichier pfx est correct, mais il n'est pas défini sur le CSP correct sur votre ordinateur qui rencontre des problèmes de construction.
Brandon Manchester
3
Au début, j'ai essayé uniquement la partie sn -i, mais il s'est plaint que le mot de passe était incorrect (bien qu'il soit correct). J'ai supprimé le certificat, l'ai réinstallé, puis sn -i ... a fonctionné. Confirmant essentiellement que pour moi, les deux étapes étaient nécessaires. Réinstallez cert puis exécutez la commande sn.
Dodgyrabbit
1
J'ai trouvé dans VSS et TFS que si vous exécutez la commande sn -i, cela ne fonctionne pas, sauf si vous avez extrait le fichier PFX, et lorsque vous l'archivez, cela ne fonctionne pas pour les autres développeurs du réseau. Je vais devoir essayer le certificat de réinstallation puis exécuter la commande sn -i. Nous en avons besoin pour travailler sur toutes les machines de développement au bureau.
JasonD
5
Cela a également fonctionné pour moi, mais je n'ai jamais eu à le faire par le passé. VS avait l'habitude d'apparaître et de demander le mot de passe pour chaque clé. Qu'est ce qui a changé?
Kevin Berridge,
126

J'ai découvert un correctif qui vous permet de construire avec succès dans un environnement multi-développeurs:

Au lieu de modifier le mot de passe (ce qui entraîne la modification du fichier .pfx), resélectionnez le fichier .pfx dans la zone de liste déroulante. Cela appelle ensuite la boîte de dialogue de mot de passe. Après avoir entré le mot de passe, le projet se construira OK. Chaque développeur peut le faire sur sa machine locale sans réellement modifier le fichier .pfx.

J'ai toujours des problèmes pour que les assemblys soient signés sur notre machine serveur de build. J'obtiens la même erreur ici, cependant l'utilisation de la méthode sn.exe -i ne résout pas le problème pour le serveur de build.

Boite magique
la source
5
J'ai passé un certain temps à ne pas faire fonctionner cela sur notre serveur de build TFS, j'ai réalisé que j'étais connecté en tant que moi-même, pas en tant que compte de service de build, pas étonnant qu'il n'ait pas pu le trouver - doh!
Daniel Morritt
7
Cela doit être marqué comme réponse car la réponse actuellement marquée ne fonctionnera pas dans un environnement multi-développeur. Bien joué.
Daniel McQuiston
Si vous utilisez le même fichier .pfx pour signer plusieurs assemblys / projets au sein d'une même solution, vous n'avez qu'à effectuer cette étape sur un projet et il s'appliquera à tous. Fonctionne très bien.
Jon Comtois
1
Mon problème était que le serveur de build fonctionnait sous un compte local. Je suis entré dans les options et j'ai changé, mais je ne savais pas que je l'avais changé au mauvais endroit - ce qui m'a amené à dépanner pendant des heures jusqu'à ce que je le vérifie à nouveau et réalise mon erreur!
The Muffin Man
3
Merci génial. Malheureusement, cela reste une solution de contournement en 2017.
Billy Jake O'Connor,
43

J'ai eu le même problème et la suppression du magasin et la lecture n'ont pas fonctionné. Je devais faire ce qui suit.

  • Obtenez une copie d' OpenSSL . Il est disponible pour Windows . Ou utilisez une boîte Linux car ils l'ont tous à peu près tous.

  • Exécutez ce qui suit pour exporter vers un fichier de clés:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    

Ensuite, dans les propriétés du projet, vous pouvez utiliser le fichier PFX.

Échoué
la source
1
Je vous remercie!! Je pense que cela a fonctionné pour moi. J'ai attrapé openssl ici: gnuwin32.sourceforge.net/packages/openssl.htm
aherrick
Je voudrais ajouter l'option pour inclure le certificat réel dans le pfx: openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt -keysig -keyex
Pete
Assurez-vous d'exécuter openssl en tant qu'administrateur, sinon vous obtiendrez l'erreur "impossible d'écrire 'état aléatoire'". Aussi: J'ai encore dû faire la réponse de Brandon Manchester avec la chose "sn -i ..." après avoir fait l'openssl chose.
Lee Richardson
C'est la seule solution qui m'a finalement fonctionné. Merci!
Ladislav
37

J'ai parlé trop tôt! La reconstruction a remis les erreurs en jeu ...

J'ai trouvé cela fonctionne - faites un clic droit dans l' Explorateur de solutions et l'excluez du projet. Cliquez sur Afficher tous les fichiers , cliquez avec le bouton droit et incluez-le à nouveau dans le projet. Annulez maintenant les modifications en attente ...

Pour une raison quelconque, cela m'a arrangé et était relativement indolore!

Mike F
la source
Le reprendre, n'a pas aidé. Je ne savais pas que cela supprimait le pfx des paramètres du projet. Je pense que la réponse réside dans la réponse de Stefan stackoverflow.com/a/14644793/1735721
DennisWelu
Cette réponse est excellente. Cela a fonctionné pour moi et c'est si facile.
Ben Rubin
A travaillé pour moi (VS2017 15.7.4). Merci pour la solution agréable et rapide.
Meeting Attender
A travaillé pour moi sur VS2019 16.1.3. Merci!!
JordanTDN
35

J'ai constaté que dans certains cas, vous devriez essayer de supprimer cette clé avant de l' installer. Faites donc ce qui suit:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX
Dariusz
la source
1
Cela l'a corrigé pour moi! L'installation en elle-même échouait avec l'objet existe déjà.
Andy
J'ai essayé ça aussi et ça n'a pas aidé. Quelque chose ne va pas avec le certificat lui-même?
Tomáš Zato - Réintègre Monica
2
Merci, la suppression doit être effectuée en tant qu'administrateur - si vous exécutez en tant qu'utilisateur normal , vous obtenez une erreur trompeuse "Conteneur de clé de nom fort introuvable".
astrowalker
Merci Son travail pour moi.
Rikin Patel
31

VSCommands 2010 (plug-in pour Visual Studio) peut résoudre ce problème automatiquement pour vous - faites simplement un clic droit sur l'erreur et cliquez sur Appliquer la correction dans le menu. Vous pouvez l' obtenir à partir de la galerie Visual Studio .

Jarek Kardas
la source
1
Je crois que c'est pour la version pro - je n'ai pas cette option dans ma version lite
Adam Butler
2
La version que je viens de télécharger (en septembre 2011) était livrée avec cette option.
Jim compte
4
Il nécessite toujours une licence pro.
John Baughman
27

Après avoir essayé toutes ces solutions (et bien plus encore), j'ai constaté que le problème se situe ailleurs. Pour les personnes qui traversent la même misère que moi après avoir acheté un certificat, je partagerai la solution à mon problème.

Comportement

Je comprends que «signe» applique un nom fort et non un code d'authentification à une DLL ou un EXE. Voilà pourquoi signtool va travailler dans ce cas, mais « signe » en studio visuel de travail non.

Raison

Dans le passé, j'ai eu de l'expérience avec les certificats de Verisign. Ils ont un KeySpec=2dans le certificat - qui est utilisé avec la fonctionnalité «signer» dans Visual Studio. Ces certificats fonctionnent correctement pour Visual Studio et signtool.

J'ai maintenant acheté des certificats de Comodo, qui ont une erreur KeySpec=1dans les certificats de signature de code. Cela signifie que ces certificats fonctionnent très bien avec signtool (Authenticode) mais pas avec un nom fort (la liste déroulante des signes).

Solution

Il existe deux façons de résoudre ce problème:

  1. Créez un certificat distinct pour votre nom fort à l'aide de sn -k [name].snk. Signez l'assembly à l'aide du snk et utilisez ensuite signtool avec votre certificat de signature de code pour signer la DLL / EXE avec la signature d'authentode. Bien que cela semble étrange, d'après ce que je comprends, c'est une bonne façon de traiter les certificats, car les noms forts ont un objectif différent de celui d'authentode (voir également ce lien pour plus de détails sur la façon dont cela fonctionne).
  2. Importez votre certificat en tant que KeySpec=2. La procédure à suivre est détaillée ici .

Parce que je veux utiliser plusieurs noms forts, j'utilise actuellement l'option (1), bien que l'option (2) fonctionne également.


Pour vous assurer que cette solution ne se perdra jamais à l'avenir, voici la procédure de la solution 2:

  1. À l'aide de la MMC "Certifiates", exportez le jeu de clés existant ( KeySpec=1) vers un fichier PFX. Remarque: veuillez sauvegarder ce fichier dans un emplacement sûr et tester si le fichier peut être importé correctement sur une autre machine si vous voulez vraiment le lire en toute sécurité!
  2. Supprimez le certificat existant du magasin de chiffrement (stlll à l'aide de la console MMC).
  3. Ouvrez une invite CMD.
  4. Importez le fichier PFX à l'aide de cette commande:
    1. certutil -importPFX -user <pfxfilename> AT_SIGNATURE
    2. Entrez la phrase secrète du pfx lorsque vous y êtes invité.

Vous devriez maintenant avoir un jeu de clés / certificat avec KeySpec=2. Si nécessaire, vous pouvez maintenant l'exporter dans un autre fichier PFX à l'aide de la console MMC.

atlaste
la source
Votre solution n ° 2 a été la seule chose qui a fonctionné pour moi (sans utiliser un outil ou un processus de ligne de commande secondaire) Merci.
Bron Davies
1
Oui, je ne comprends vraiment pas pourquoi certaines solutions ici ont autant de votes; c'est vraiment la seule chose qui a fonctionné pour moi, et je suis presque sûr que la plupart des gens qui achètent un certificat CS devraient avoir le même problème.
Eh
1
C'est la seule solution qui a fonctionné pour moi. En outre, le fichier .pfx ne peut pas inclure d'informations de chaînage de certificat pour les assemblys de signature.
Shih-Wen Su
Merci pour ces instructions détaillées. Chaque étape est décrite avec précision.
Dmitriy
1
Votre première solution est essentielle à comprendre ici: il n'est absolument pas nécessaire de signer des assemblages forts avec un certificat coûteux protégé par mot de passe! Une fois que vous comprenez cela et utilisez simplement un fichier snk, ce problème disparaît complètement. Voir la note d'avertissement ici et ici .
Paul
11

Pour résoudre ce problème dans Visual Studio 2012, je clique avec le bouton droit sur le projet, propriétés -> "signature", puis décochez la case "Signer les manifestes ClickOnce".

Roméo
la source
2
C'est une réponse parfaite s'il n'y a pas besoin de signature. Cela supprimera la nécessité de signer le projet.
Tom Anderson
8

J'ai resélectionné le fichier de clé (pfx) dans la liste déroulante "Choisir un fichier de clé de nom fort", puis fourni le mot de passe dans la fenêtre contextuelle "ENTRER MOT DE PASSE". J'ai enregistré mon projet et j'ai reconstruit.build a réussi.

  • Ouvrez les propriétés du projet.
  • Cliquez sur la section Signature.
  • Où il est indiqué «Choisissez un fichier de clé de nom fort:», resélectionnez la valeur actuelle dans la liste déroulante:

entrez la description de l'image ici

  • Visual Studio vous demandera maintenant le mot de passe. Entrez-le.

entrez la description de l'image ici

  • Enregistrez votre projet et effectuez une reconstruction.

  • Si vous obtenez un message d'erreur: "Une tentative a été faite de référencer un jeton qui n'existe pas", ignorez-le et continuez les étapes ci-dessous

  • Cliquez sur le bouton «Changer le mot de passe»:

entrez la description de l'image ici

  • Saisissez le mot de passe d'origine dans les trois cases et cliquez sur OK. Si vous souhaitez modifier votre mot de passe (ou si votre ancien mot de passe ne répond pas aux exigences de complexité), vous pouvez le faire maintenant.

  • Enregistrez votre projet et effectuez une reconstruction.

Plus d'informations..

Bala Kumar
la source
3
Toute cette erreur semble être complètement aléatoire à résoudre, mais cette solution a fonctionné pour moi. Si quelqu'un d'autre arrive aussi loin dans la page, je ne peux que suggérer de tout essayer.
DeusExMachina25
6

Pour contourner ce problème, j'ai essayé d'exécuter Visual Studio 2010 en tant qu'administrateur, et cela a fonctionné pour moi.

J'espère que ça aide.

user350076
la source
Il a cessé de fonctionner pour une raison quelconque. Je ne pouvais pas croire que cela ait résolu le problème. Je vous remercie!!!
Gerhard Powell
4

En tant qu'auteur original du travail sur le rapport de bogue de connexion, il existe DEUX variantes de ce message (je l'ai découvert plus tard)

Pour une variante, vous utilisez sn.exe (généralement si vous utilisez un nom fort) pour importer la clé dans le magasin de noms forts.

L'autre variante pour laquelle vous utilisez certmgr pour importer est lorsque vous signez des codes pour des choses comme le déploiement en un clic (notez que vous pouvez utiliser le même certificat dans les deux cas).

J'espère que cela t'aides.

PeterI
la source
Oui, nous avons également essayé celui-ci avec le support de Microsoft, et c'est la façon de faire l'importation de signature de code. Le problème semble vraiment être que le mot de passe du certificat est perdu lors de la sécurité du processus d'enregistrement. Mais cela ne semble pas être le vrai problème. Il semble que si vous entrez les détails du certificat sur la machine n ° 1 de Widnows 7, puis déplacez ce même fichier exact sur une autre machine et l'enregistrez, l'enregistrement fonctionnera, mais la génération échouera. Microsoft étudie toujours la question pour nous. Pour l'instant, nous avons dû désactiver la signature de code et signer manuellement lors de la publication.
JasonD
3

Rien ne fonctionnait pour moi, mais ensuite je suis allé voir le gestionnaire de certificats (mmc.exe). Le certificat n'a pas été importé dans le magasin personnel, je l'ai donc importé manuellement, puis le projet a été compilé.

Voir Signature de manifeste ClickOnce et Signature d'assembly avec nom fort à l'aide de la page de signature du concepteur de projet Visual Studio, Assemblages de signature .

Samuel
la source
Cela a également résolu le problème pour moi après avoir effectué le correctif SN.exe -i.
CodingSamurai
2

La resélection du fichier de clés dans une zone de liste déroulante et la saisie du mot de passe nous aident à ce sujet.

Mais il faut le faire à chaque fois que le fichier clé change et il semble que ce ne soit pas OK.

user1113289
la source
2

J'ai eu le même problème après avoir déplacé mon installation Windows vers un SSD . Aucune des autres solutions n'a fonctionné pour moi.

Ma solution était d'ouvrir le fichier de projet dans le Bloc - notes et de supprimer toutes les références aux clés PFX. Une fois le fichier enregistré, ouvrez la solution dans Visual Studio. Accédez au projet -> Propriétés -> Signature. Vous ne devriez voir aucune clé répertoriée dans la zone de liste déroulante `` Choisissez le fichier de clés de nom fort ''. Dans la zone de liste déroulante, accédez à la clé, sélectionnez-la et votre projet peut maintenant être généré.

GoalMaker
la source
2

Mon problème était que le contrôleur de construction TFS s'exécutait en tant que service réseau et pour une raison quelconque, je ne comprenais pas pourquoi les certificats du service hôte de construction Visual Studio n'étaient pas utilisés. J'ai changé l'identité du service Visual Studio Build en quelque chose de plus gérable, je me suis assuré qu'il avait des droits sur le serveur TFS et j'ai ajouté manuellement les certificats à l'aide de la console MMC.

Le problème était également que MSBuild ne pouvait pas ajouter les certificats protégés par mot de passe au magasin.

Sentinelle
la source
À quel magasin devez-vous l'ajouter?
felickz
J'ai fait la même chose (et j'ai également mis des certificats dans cet utilisateur Personal / Trusted Root / Trusted Pub .. je ne sais pas qui l'a corrigé) et j'ai pu passer à la prochaine erreur TFS que j'avais des espaces de travail conflictuels, donc pour rectifier que j'avais aussi pour supprimer et ajouter un nouvel agent de génération.
felickz
2

J'ai eu un problème similaire, mais après avoir sélectionné le pfx dans un ComboBox "Strong key key file" et tapé le mot de passe, j'ai toujours eu une erreur similaire (sans la partie nom du conteneur):

Impossible d'importer le fichier de clé suivant: companyname.pfx. Le fichier de clé peut être protégé par mot de passe. Pour corriger cela, essayez d'importer à nouveau le certificat ou installez manuellement le certificat

En outre, le panneau d'informations de certificat «Signer les manifestes ClickOnce» n'était pas rempli.

J'ai fait "Select from File ..." sur mon pfx, et cela a résolu le problème.

surfen
la source
1

Toutes les méthodes décrites ici ne m'ont pas aidé. Mais quand j'ai supprimé le fichier * .pfx de mon projet et l'ai ajouté à la signature de l'assembly à nouveau, j'ai construit mon projet avec sans aucune erreur! Je ne peux pas expliquer pourquoi. Mais ça a marché pour moi.

Peter Barbanyaga
la source
1

D'accord, cela a fonctionné pour moi. Ouvrez l'ancien solution / projet en tant qu'administrateur dans Visual Studio 2010 et ouvrez la solution / le projet nouveau ou copié. En tant qu'administrateur, supprimez le fichier pfk copié dans la nouvelle solution / projet Visual Studio 2010 et accédez aux propriétés du projet et désélectionnez-le.

Avec les deux projets ouverts, copiez-collez vers le nouveau. Accédez aux propriétés du projet et sélectionnez Générer. J'ai ouvert et fermé Visual Studio et aussi après l'avoir supprimé du nouveau projet, je l'ai construit avant de le copier de l'ancien projet et de le sélectionner. J'ai reçu l'erreur au début de ce message lorsque j'ai copié le projet et essayé de le construire.

Jason Robertson
la source
1

Dans mon scénario, le service de génération n'utilisait pas le même compte d'utilisateur que celui avec lequel j'ai importé la clé sn.exe.

Après avoir changé le compte en mon compte administrateur, tout fonctionne très bien.

Mathias Lykkegaard Lorenzen
la source
J'avais le même problème, la lecture de votre commentaire m'a fait remarquer que j'avais mis à niveau vers Windows 10 à partir de Windows 7 et maintenant VS devait être exécuté en tant qu'administrateur. Ainsi, le VS a été exécuté en tant qu'administrateur et aucun problème
Merci
1

Cela a résolu mon problème: ouvrez votre projet VS

Double-cliquez sur Package.appxmanifest

Accédez à l'onglet Emballage

cliquez sur choisir un certificat

cliquez sur configurer le certificat

sélectionnez dans le fichier et utilisez example.pfx cette unité ou tout autre élément créé

Milad Xandi
la source
0

J'ai résolu ce problème par moi-même en modifiant la ligne suivante dans le fichier .csproj du projet Visual Studio:

Cela a jeté l'erreur «impossible d'importer»:

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

La modification de la valeur sur false a fait disparaître l'erreur.

Kyle Julé
la source
7
Habituellement, les assemblys sont signés à des fins spécifiques, et la suppression de SignManifests entraînerait des problèmes de déploiement dans certains environnements. Ce n'est donc pas une solution à un problème
Georgy Smirnov
0

J'ai eu la même erreur. Dans mon cas, j'ai essayé tout ce qui précède, mais je n'ai pas pu obtenir le résultat.

J'ai finalement réalisé que dans mon cas, la raison de l'erreur était que le mot de passe du certificat n'était pas entré ou entré incorrectement. L'erreur a disparu lorsque j'ai entré le mot de passe dynamiquement correctement. réussi

Hamit YILDIRIM
la source
0

Malheureusement, aucune approche mentionnée ici n'a fonctionné pour moi. Je dois enregistrer un couple PFX dans un conteneur Docker et je dois passer le mot de passe via la ligne de commande.

J'ai donc re-développé la sn.exe -i <infile> <container>commande en C # en utilisant le RSACryptoServiceProvider . La source et l'application se trouvent sur GitHub dans le projet SnInstallPfx .

L' application SnInstallPfx accepte une clé PFX et son mot de passe. Il calcule automatiquement le nom du conteneur de clés (VS_KEY_ *) (emprunté au code source MSBuild) et l'installe dans le nom fort CSP.

Usage:

SnInstallPfx.exe <pfx_infile> <pfx_password>
// or pass a container name if the default is not what you need (e.g. C++)
SnInstallPfx.exe <pfx_infile> <pfx_password> <container_name>
Honzajscz
la source
0

Pour qui utilise les coureurs GitLab:

  • Assurez-vous d' exécuter le coureur avec un compte auquel vous pouvez vous connecter: ./gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password "ENTER-YOUR-PASSWORD"(j'ai d'abord dû arrêter et désinstaller)
  • suivez ce guide pour accorder à l' utilisateur de build l'autorisation de se connecter en tant que service
  • connexion avec un tel utilisateur de build
  • utilisez la commande suggérée dans les autres réponses: sn -i certificate.pfx VS_KEY_C***6

le nom du conteneur est suggéré dans la sortie du Job ayant échoué sur GitLab (sortie msbuild) entrez la description de l'image ici

Michele mpp Marostica
la source