web-dev-qa-db-fra.com

Visual Studio 2017 donne `` L'ajout du certificat au magasin de certificats racine de confiance a échoué avec l'erreur suivante ''

J'essaie d'exécuter ASP Application MVC avec le mode SSL défini sur true et chaque fois que j'exécute l'application, je suis invité à faire confiance au certificat SSL IIS Express SSL). En cliquant sur Oui, il affiche le message d'erreur "L'ajout du certificat au magasin de certificats racine approuvés a échoué avec l'erreur suivante. L'accès est refusé". J'exécute mon Visual Studio 2017 en mode administrateur. J'ai également supprimé le certificat localhost en accédant à MMC. Quelqu'un d'autre a-t-il rencontré ce problème?.

Error Screenshot

SOLN: C'est ce qui a fonctionné pour moi. supprimé tous les certificats localhost. ran repair IIS Express in Add/Remove Programs. Copiez et collez le certificat localhost de Personal/Certificate vers Trusted Root Certificates et il ne se plaignait plus.

23
sanjeev

Remarque: Ajout de la solution OP de la question comme réponse.

C'est ce qui a fonctionné pour moi. supprimé tous les certificats localhost. ran repair IIS Express in Add/Remove Programs. Copiez et collez le certificat localhost de Personal/Certificate vers Trusted Root Certificates et il ne se plaignait plus.

Réparer/réinstaller IIS Express ne semble pas réellement résoudre ce problème (à partir de IIS Express 10), la vraie solution consiste à ajouter le certificat localhost à Trusted Certificats Rood.

Tous les détails sur la façon de procéder sont couverts par cet article de blog: https://blogs.iis.net/robert_mcmurray/how-to-trust-the-iis-express-self-signed-certificate

En résumé,

  • Ouvrez le gestionnaire de certificats via "gérer les certificats d'ordinateur" dans le panneau de configuration ou en exécutant certlm dans une invite cmd
  • Sous Personnel> Certificats, exportez le certificat localhost et enregistrez-le sur le disque
    • n'exportez pas la clé privée! Exportez simplement la clé publique.
  • Sous Autorités de certification racines de confiance, cliquez avec le bouton droit sur Certificats et importez le certificat que vous venez d'exporter
14
Chris Pratt

Cela m'a fonctionné simplement en exécutant CMD> certlm et en supprimant le certificat localhost dans le dossier personnel.

8
user2988031

Après avoir lutté avec ce problème pendant une semaine (en utilisant Win 10 et Visual Studio 2019 Community Edition version 16.1.1) et en essayant diverses solutions, j'ai découvert ce qui suit:

  • par défaut, le certificat localhost pour IISExpress 10 est installé dans: Certificats (ordinateur local) -> Personnel

enter image description here

  • La réparation d'IISExpress 10 (Programmes -> Programmes et fonctionnalités) créera un nouveau certificat localhost également dans: Certificats (ordinateur local) -> Personnel

  • Exportez ensuite ce certificat en l'enregistrant dans un fichier à l'aide de:

enter image description here

Importez ensuite ce certificat dans: Certificats (ordinateur local) -> Autorités de certification racines de confiance

enter image description here

  • puis comme ser2988031 a souligné: supprimez le certificat des certificats (ordinateur local) -> Personnel

J'ai également essayé d'utiliser "dotnet dev-crts https --trust" mais cela n'a pas fonctionné pour moi et a toujours produit l'erreur suivante:

enter image description here

Donc, pour conclure: assurez-vous qu'il n'y a qu'un seul certificat localhost qui se trouve dans Certificats (ordinateur local) -> Autorités de certification racines de confiance

Mise à jour: Je viens de me rendre compte qu'après avoir modifié l'application Web à quelques reprises, une erreur différente s'est manifestée et j'ai dû recommencer tout le processus pour le faire fonctionner!

1
wosi

Mon erreur était en fait "le certificat de développeur asp.net n'est pas installé" mais je pense que la solution ci-dessous fonctionnerait toujours dans ce cas. Exécutez les commandes suivantes dans l'invite de commandes.

dotnet dev-certs https --trust --check
echo Trust check: %errorlevel%
dotnet dev-certs https --trust -ep "%APPDATA%\ASP.NET\https\TestCert.pfx" -p TestPassword
echo Trust/Export: %errorlevel%

Référence: https://github.com/Microsoft/DockerTools/issues/147#issuecomment-420433974

0
piris