Rediriger les connexions HTTP en HTTPS sur IIS 6.0 et IIS 7.0

Il existe différentes méthodes pour rediriger les connexions qui arrivent sur un site en http:// vers le même site en https:// avec IIS 6.0 ou IIS 7.0.

C’est plus difficile qu’avec Apache mais pas non plus la mort.

Voyons une méhode qui est la plus simple: c’ est d’utiliser les pages d’erreur de IIS.

Nous interdisons les connexions en HTTP:// ce qui provoque une erreur 403.4. La page de cette erreur est personnalisée pour faire une redirection vers HTTPS://

Voilà les étapes

  • Je force la connexion en HTTPS uniquement
  • Je crée une page d’erreur customisée

Pour forcer la connexion en HTTPS

Nous allons dans la console de IIS 6.0

Gestionnaire Services Internet

Clic droit sur le site web par défaut puis Propriété

Dans l’onglet sécurité des répertoires, il faut éditer les communications sécurisées pour forcer le canal en SSL.. Nous pouvons au passage activer le 128 bits.

iis 6.0 Gestionnaire Services Internet Forcer SSL

Maintenant dès que nous allons sur le site nous avons la fameuse erreur 403.4.

Nous créons une page avec le code suivant:

<script type="text/javascript"
window.location = "https://" + window.location.hostname+window.location.pathname+windows.location.search+windows.location.hash;
 </script>

Il est important de mettre les hash et les search dans le cas ou l’URL contiendrait ces éléments.

Une fois que cette page est crée, nous l’affectons à l’erreur.

Le chemin est le suivant

Dans le site web par défaut, nous choisissons l’onglet erreurs personnalisées puis l’erreur qui nous concerne la 403.4

Un petit coup d’édition et nous faisons pointer vers le fichier crée précédement. Nota il faut que le fichier soit accessible par IIS ( droit ok et chemin ok).

Et après c’est le moment du test.

Entourage et Exchange 2007

Super surprise lors d’un migration entre Exchange 2003 et Exchange 2007, nous découvrons que le fonctionnement d’Exchange 2007 et de son copain IIS ne fonctionne pas comme avant.

Résultat certains messages n’apparaissent pas dans Entourage. Et a priori aucune logique.

A près des heures de recherches avec une méthode de test empirique. Nous avons trouvé un article sur les url rejetées par iis7 http://blogs.iis.net/thomad/archive/2007/12/17/iis7-rejecting-urls-containing.aspx

La solution est donc de modifier la configuration de IIS

Le fichier de config est celui-ci %windir%\System32\inetsrv\config\applicationHost.config

Il faut aller dans la section <location path=”Default Web Site/Exchange”>

Trouver

</authentication>

et ajouter  <requestFiltering allowDoubleEscaping=”true” />

Dans IIS7 la modification du fichier de config lance un rechargement direct des paramètres donc c’est fini.

Au loin on entend les clients heureux de retrouver leurs messages