IIS Express – Mise en œuvre du protocole SSL

Je ne parviens pas à faire accepter à IIS Express des connexions sécurisées pour un projet VS2010 MVC3 que je développe. Je peux le faire accepter des connexions non sécurisées sur le port 80, mais pas sur le port 443.

J’ai suivi les étapes suivantes, basées sur Google:

1) Vous avez localisé l’empreinte SHA1 de mon certificate auto-signé IIS Express Server en exécutant ce qui suit sur une ligne de commande VS2010:

certmgr.exe /c /s /r localMachine MY 

Le résultat était 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009. J’ai appris plus tard que je devais supprimer les espaces lors de l’utilisation de l’empreinte numérique.

2) Supprimé le certificate lié au port 443 en exécutant ce qui suit sur une invite de ligne de commande élevée:

 netsh http delete sslcert ipport=0.0.0.0:443 

3) Génération d’un nouveau GUID en exécutant Create GUID sur le menu Outils de VS2010. Dans mon cas, j’ai B0421A5B-FF61-47CE-892D-11AA3A9C7D2A.

4) Installation du certificate auto-signé sur le port 443 en exécutant ce qui suit sur une invite de ligne de commande élevée:

 netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A} 

5) Modification de la liste de contrôle d’access en exécutant ce qui suit à partir d’une invite de ligne de commande élevée:

 netsh http add urlacl url=https://localhost:443/ user=everyone 

6) Modification du fichier application.config pour IIS Express en ajoutant une liaison pour le port 443 et le protocole https. La section des sites pour le fichier a fini par ressembler à ceci:

                   

7) Redémarrage du service http en exécutant ce qui suit à une invite de ligne de commande élevée:

 net stop http net start http 

8) L’URL du projet dans l’onglet Web de la page de propriétés de mon projet MVC a été modifiée comme suit:

 http://localhost/ 

L’enregistrement de la page de propriétés du projet a déclenché une reconfiguration du serveur après cette modification.

Lorsque je lance l’application MVC depuis VS2010, elle renvoie correctement à http: // localhost (sur le port 80, la valeur par défaut; je n’ai pas inclus toutes les étapes pour que IIS Express fonctionne avec des connexions non sécurisées / normales sur le port 80). mais ce sont essentiellement les étapes 5 à 7, mais en se concentrant sur http et le port 80, pas sur https et le port 443).

Cependant, essayer de passer à une action nécessitant https m’obtient une erreur de “connexion au serveur refusée”.

Qu’est-ce que je fais mal?

Après avoir défini un projet pour utiliser IISExpress, appuyez sur F4 pendant que le projet est sélectionné dans l’explorateur de solutions pour afficher les propriétés et dans le jeu de propriétés SSL Enable définissez true et sous SSL URL définissez l’URL avec le port cas) vous voulez pour le SSL.

Cela fonctionne pour moi sans aller sous le capot et le certificate auto-signé était automatique.

Pour exécuter le projet sur cette URL par défaut, vous pouvez cliquer avec le bouton droit sur le projet, sélectionner les propriétés, puis Web et remplacer l’URL du projet par https: // localhost: 443.

Je suis tombé sur la réponse.

À l’étape 6, je modifiais le mauvais fichier application.config d’IIS Express. Il se trouve qu’il existe un fichier de configuration “maître” dans le répertoire de base de l’application (par exemple, C:\Program Files (x86)\IIS Express\AppServer , sur mon système), qui est celui que j’ai modifié.

Le deuxième fichier correct à modifier est celui de la zone Données utilisateur (par exemple, C:\Users\Mark.ARCABAMA\Documents\IISExpress\config , sur mon système).

Si vous avez suivi les étapes de jbtule et que le protocole SSL ne fonctionne toujours pas, assurez-vous que votre port est au format :443XX .

Visual Studio l’a fait automatiquement pour le premier projet sur lequel j’ai activé SSL, mais tous les projets ultérieurs semblent avoir des ports SSL aléatoires. En le changeant pour la structure 443 ci-dessus dans le Project > Web UI a obtenu et a fonctionné pour moi.