Traduction

Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Rick Anderson, Better, Faster, Easier SSL testing for ASP.NET MVC & WebForms.

Test SSL amélioré, accéléré et facilité pour ASP.NET MVC et WebForms

Scott Hanselman a écrit un excellent article intitulé Working with SSL at Development Time is easier with IISExpress, mais j'ai ce que je pense être une meilleure approche. N'hésitez pas à vous prononcer sur le sujet. Dans cet article je vais vous montrer comment tester SSL sur vos applications ASP.NET MVC et WebForms à l'aide d'IIS 7. Vous devez vous assurer que vous avez IIS 7 configuré sur votre ordinateur sous Windows 7 avant de continuer. Voir mon article intitulé Tester votre application ASP.NET MVC ou WebForms sous IIS 7 en 30 secondes pour obtenir les instructions.

Créez une nouvelle application ASP.NET MVC 3, appelée « MvcSSL », dans le dossier C:\Webs. Acceptez toutes les propositions par défaut.

Image non disponible

IIS ne peut pas exécuter un projet ASP.NET qui a été créé dans le dossier de projet par défaut de Visual Studio (C:\users\<user>\Documents\Visual Studio 2010\Projects). Sélectionnez un dossier où IIS peut accéder aux fichiers, tel que C:\Webs.

Compilez et exécutez l'application.

Faites un clic droit sur la solution et sélectionnez « Propriétés ».

Image non disponible
  • Sélectionnez Web dans le panneau de gauche.
  • Dans la zone Serveurs, sélectionnez la case d'option Utiliser le serveur Web IIS local.
  • Cliquez sur le bouton Créer un répertoire virtuel.
Image non disponible

Si vous obtenez le message d'erreur suivant :

« Unable to create the virtual directory. To access Web sites on the local IIS Web server, you must run Visual Studio under an Administrator account. »

Image non disponible

Lisez le message et suivez les instructions, et vous serez récompensé d'un message plus convivial.

Image non disponible

Maintenant, retournez au gestionnaire de IIS, actualisez et déployez l'arborescence jusqu'à atteindre le nœud Default Web Site (Site Web par défaut). Cliquez sur Browse *:80(http) dans le panneau de droite.

Note du traducteur
Dans la capture d'écran ci-dessous, c'est Browse *:80(http) qui aurait dû être encadré en rouge et non Advanced Settings.

Image non disponible

Ajouter un certificat SSL à la manière d'un super Ninja

  • Téléchargez et décompressez le fabuleux outil de Thomas Deml, SelfSSL7. Lisez à propos de SelfSSL7 ici.
  • Ouvrez une invite de commande en tant qu'administrateur et atteignez le répertoire de SelfSSL7.
  • Dans la ligne de commande ci-dessous, remplacez Q3 (qui était le nom de mon ordinateur) par le nom de votre ordinateur :

SelfSSL7.exe /Q /T /I "Default Web Site" /N cn=Q3;cn=localhost /V 1000

C'est tout. Vous disposez, à présent, d'un certificat autosigné pour effectuer les tests.

Ouvrez Global.asax et ajoutez RequireHttps à tous les contrôleurs et méthodes d'action.

 
Sélectionnez
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
           filters.Add(new RequireHttpsAttribute()); 
           filters.Add(new HandleErrorAttribute());
       }

Compilez l'application et actualisez le navigateur. Remarquez qu'à présent IIS Manager prend en compte le port SSL.

Image non disponible
Image non disponible

Cliquez sur l'icône de verrou afin d'examiner le certificat.

Image non disponible

Étapes suivantes

Modifiez l'URL afin d'utiliser le nom de l'ordinateur au lieu de « localhost ».

Image non disponible

Afin d'accéder à ce site à partir d'un ordinateur distant, vous allez probablement devoir autoriser le port 443.

Pour configurer le pare-feu pour HTTPS (port 443)

  1. Depuis le menu Démarrer, exécutez « wf.msc ».
    Image non disponible
  2. Dans l'arborescence de la console, cliquez sur Règles de trafic entrant, puis cliquez sur Nouvelle règle.
    Image non disponible
  3. Dans la page Type de règle, cliquez sur Port, puis cliquez sur Suivant.
    Image non disponible
  4. Dans la page Protocole et ports, sélectionnez TCP, puis cliquez sur Ports locaux spécifiques. Saisissez le port 443. Puis cliquez sur Suivant.
    Image non disponible
  5. Dans la page Action, cliquez sur Autoriser la connexion, puis cliquez sur Suivant.
    Image non disponible
  6. Dans la page Profil, assurez-vous que les cases Domaine, Privé, et Public sont cochées, puis cliquez sur Suivant afin d'accepter le profil par défaut.
    Image non disponible
  7. Dans la page Nom, sous Nom, saisissez quelque chose comme « World Wide Web Services (Rick's HTTPS Traffic-In) ».
    Image non disponible

Vous pouvez, à présent tester le site à partir d'un ordinateur distant, mais il ne sera pas considéré comme un site de confiance.

Image non disponible

Exportez le certificat et importez-le sur un ordinateur distant. Exécutez la commande suivante (modifiez le nom de l'ordinateur de Q1 en celui correspondant au vôtre).

C:\Users\ricka\Downloads\SelfSSL7>SelfSSL7.exe /Q /T /I "Default Web Site" /N cn=Q1;cn=localhost / V 1000 /K 2048 /X /F q1.pfx /W 5$ecURE!

  • Accédez au fichier PFX à partir d'un ordinateur distant. Double-cliquez sur le fichier PFX pour lancer l'Assistant d'importation
    Image non disponible
  • Cliquez sur Suivant.
    Image non disponible
  • Cliquez sur Suivant, puis saisissez le mot de passe. (J'ai utilisé « 5$ecURE! » dans cet exemple).
    Image non disponible
  • Cliquez sur Placer tous les certificats dans ce magasin, puis cliquez sur Parcourir.
    Image non disponible
  • Cliquez sur OK.
    Image non disponible
  • Cliquez sur Terminer.
    Image non disponible
  • Vous devriez, à présent, pouvoir naviguer à partir de l'ordinateur distant sans avertissement.

Tester avec FireFox

  1. À l'aide de FireFox, accédez au site MvcSSL. FireFox émettra un avertissement et n'affichera pas la page.
    Image non disponible
  2. Cliquez sur Ajouter une exception.
    Image non disponible
  3. Vous pouvez, à présent, accéder au site sans aucun avertissement.
    Image non disponible

Conclusion

Dans ce tutoriel, nous avons vu comment tester SSL sur vos applications ASP.NET MVC et WebForms à l'aide d'IIS7 en utilisant une approche améliorée, accélérée et facilitée.

Remerciements

Je tiens ici à remercier Rick Anderson de m'avoir autorisé à traduire son article.
Je remercie h2s84 pour sa relecture technique et ses propositions.
Je remercie également ClaudeLELOUP pour sa relecture orthographique et ses propositions.